From 9fe09db771aa3890ac8a0eeb1d9e6097060fad06 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 24 Jan 2019 12:41:08 +0300 Subject: encapsulate hir locations --- crates/ra_ide_api/src/db.rs | 36 ++++++++---------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) (limited to 'crates/ra_ide_api/src/db.rs') diff --git a/crates/ra_ide_api/src/db.rs b/crates/ra_ide_api/src/db.rs index a1b666899..ba0eb1cb8 100644 --- a/crates/ra_ide_api/src/db.rs +++ b/crates/ra_ide_api/src/db.rs @@ -1,7 +1,7 @@ -use std::{fmt, sync::Arc}; +use std::sync::Arc; use ra_db::{ - LocationIntener, BaseDatabase, FileId, Canceled, + BaseDatabase, FileId, Canceled, salsa::{self, Database}, }; @@ -10,21 +10,7 @@ use crate::{symbol_index, LineIndex}; #[derive(Debug)] pub(crate) struct RootDatabase { runtime: salsa::Runtime, - id_maps: Arc, -} - -#[derive(Default)] -struct IdMaps { - defs: LocationIntener, - macros: LocationIntener, -} - -impl fmt::Debug for IdMaps { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("IdMaps") - .field("n_defs", &self.defs.len()) - .finish() - } + interner: Arc, } impl salsa::Database for RootDatabase { @@ -40,7 +26,7 @@ impl Default for RootDatabase { fn default() -> RootDatabase { let mut db = RootDatabase { runtime: salsa::Runtime::default(), - id_maps: Default::default(), + interner: Default::default(), }; db.query_mut(ra_db::CrateGraphQuery) .set((), Default::default()); @@ -56,22 +42,16 @@ impl salsa::ParallelDatabase for RootDatabase { fn snapshot(&self) -> salsa::Snapshot { salsa::Snapshot::new(RootDatabase { runtime: self.runtime.snapshot(self), - id_maps: self.id_maps.clone(), + interner: Arc::clone(&self.interner), }) } } impl BaseDatabase for RootDatabase {} -impl AsRef> for RootDatabase { - fn as_ref(&self) -> &LocationIntener { - &self.id_maps.defs - } -} - -impl AsRef> for RootDatabase { - fn as_ref(&self) -> &LocationIntener { - &self.id_maps.macros +impl AsRef for RootDatabase { + fn as_ref(&self) -> &hir::HirInterner { + &self.interner } } -- cgit v1.2.3