From 6b993a97602da5ddee4033d4d76a68471f8d1ee1 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 9 Apr 2019 22:51:22 +0300 Subject: migrate to salsas interning --- crates/ra_hir/src/db.rs | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'crates/ra_hir/src/db.rs') diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index be8a8c98b..e23e2bb2b 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs @@ -1,10 +1,10 @@ use std::sync::Arc; -use ra_syntax::{SyntaxNode, TreeArc, SourceFile}; +use ra_syntax::{SyntaxNode, TreeArc, SourceFile, ast}; use ra_db::{SourceDatabase, salsa}; use crate::{ - HirFileId, MacroDefId, AstIdMap, ErasedFileAstId, Crate, Module, HirInterner, + HirFileId, MacroDefId, AstIdMap, ErasedFileAstId, Crate, Module, MacroCallLoc, Function, FnSignature, ExprScopes, TypeAlias, Struct, Enum, StructField, Const, ConstSignature, Static, @@ -15,11 +15,29 @@ use crate::{ impl_block::{ModuleImplBlocks, ImplSourceMap}, generics::{GenericParams, GenericDef}, type_ref::TypeRef, - traits::TraitData, Trait, ty::TraitRef + traits::TraitData, Trait, ty::TraitRef, + ids }; #[salsa::query_group(DefDatabaseStorage)] -pub trait DefDatabase: SourceDatabase + AsRef { +pub trait DefDatabase: SourceDatabase { + #[salsa::interned] + fn intern_macro(&self, macro_call: MacroCallLoc) -> ids::MacroCallId; + #[salsa::interned] + fn intern_function(&self, loc: ids::ItemLoc) -> ids::FunctionId; + #[salsa::interned] + fn intern_struct(&self, loc: ids::ItemLoc) -> ids::StructId; + #[salsa::interned] + fn intern_enum(&self, loc: ids::ItemLoc) -> ids::EnumId; + #[salsa::interned] + fn intern_const(&self, loc: ids::ItemLoc) -> ids::ConstId; + #[salsa::interned] + fn intern_static(&self, loc: ids::ItemLoc) -> ids::StaticId; + #[salsa::interned] + fn intern_trait(&self, loc: ids::ItemLoc) -> ids::TraitId; + #[salsa::interned] + fn intern_type_alias(&self, loc: ids::ItemLoc) -> ids::TypeAliasId; + #[salsa::invoke(crate::ids::macro_def_query)] fn macro_def(&self, macro_id: MacroDefId) -> Option>; -- cgit v1.2.3