From 6cdfd1c3cf3d58eee90b5034d4e2d702fdc0f8f5 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Tue, 19 May 2020 00:39:50 +0200 Subject: Make `find_path_inner` a query This eliminates any remaining performance problems in the "Implement default members" assist (at least that I've found). --- crates/ra_hir_def/src/db.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'crates/ra_hir_def/src/db.rs') diff --git a/crates/ra_hir_def/src/db.rs b/crates/ra_hir_def/src/db.rs index 2f71511ba..945a0025e 100644 --- a/crates/ra_hir_def/src/db.rs +++ b/crates/ra_hir_def/src/db.rs @@ -17,6 +17,7 @@ use crate::{ item_scope::ItemInNs, lang_item::{LangItemTarget, LangItems}, nameres::{raw::RawItems, CrateDefMap}, + path::ModPath, visibility::Visibility, AttrDefId, ConstId, ConstLoc, DefWithBodyId, EnumId, EnumLoc, FunctionId, FunctionLoc, GenericDefId, ImplId, ImplLoc, ModuleId, StaticId, StaticLoc, StructId, StructLoc, TraitId, @@ -118,6 +119,9 @@ pub trait DefDatabase: InternDatabase + AstDatabase + Upcast { item: ItemInNs, krate: CrateId, ) -> Arc<[(ModuleId, Name, Visibility)]>; + + #[salsa::invoke(find_path::find_path_inner_query)] + fn find_path_inner(&self, item: ItemInNs, from: ModuleId, max_len: usize) -> Option; } fn crate_def_map_wait(db: &impl DefDatabase, krate: CrateId) -> Arc { -- cgit v1.2.3