diff options
Diffstat (limited to 'crates/ra_hir_expand/src/builtin_derive.rs')
-rw-r--r-- | crates/ra_hir_expand/src/builtin_derive.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/crates/ra_hir_expand/src/builtin_derive.rs b/crates/ra_hir_expand/src/builtin_derive.rs index 1dc9cac66..967d1f3a1 100644 --- a/crates/ra_hir_expand/src/builtin_derive.rs +++ b/crates/ra_hir_expand/src/builtin_derive.rs | |||
@@ -9,7 +9,7 @@ use ra_syntax::{ | |||
9 | }; | 9 | }; |
10 | 10 | ||
11 | use crate::db::AstDatabase; | 11 | use crate::db::AstDatabase; |
12 | use crate::{name, quote, LazyMacroId, MacroCallId, MacroDefId, MacroDefKind}; | 12 | use crate::{guess_crate, name, quote, LazyMacroId, MacroCallId, MacroDefId, MacroDefKind}; |
13 | 13 | ||
14 | macro_rules! register_builtin { | 14 | macro_rules! register_builtin { |
15 | ( $($trait:ident => $expand:ident),* ) => { | 15 | ( $($trait:ident => $expand:ident),* ) => { |
@@ -160,8 +160,7 @@ fn find_builtin_crate(db: &dyn AstDatabase, id: LazyMacroId) -> tt::TokenTree { | |||
160 | let m: MacroCallId = id.into(); | 160 | let m: MacroCallId = id.into(); |
161 | let file_id = m.as_file().original_file(db); | 161 | let file_id = m.as_file().original_file(db); |
162 | let cg = db.crate_graph(); | 162 | let cg = db.crate_graph(); |
163 | let krates = db.relevant_crates(file_id); | 163 | let krate = match guess_crate(db, file_id) { |
164 | let krate = match krates.get(0) { | ||
165 | Some(krate) => krate, | 164 | Some(krate) => krate, |
166 | None => { | 165 | None => { |
167 | let tt = quote! { core }; | 166 | let tt = quote! { core }; |
@@ -172,7 +171,7 @@ fn find_builtin_crate(db: &dyn AstDatabase, id: LazyMacroId) -> tt::TokenTree { | |||
172 | // XXX | 171 | // XXX |
173 | // All crates except core itself should have a dependency on core, | 172 | // All crates except core itself should have a dependency on core, |
174 | // We detect `core` by seeing whether it doesn't have such a dependency. | 173 | // We detect `core` by seeing whether it doesn't have such a dependency. |
175 | let tt = if cg[*krate].dependencies.iter().any(|dep| dep.name == "core") { | 174 | let tt = if cg[krate].dependencies.iter().any(|dep| dep.name == "core") { |
176 | quote! { core } | 175 | quote! { core } |
177 | } else { | 176 | } else { |
178 | quote! { crate } | 177 | quote! { crate } |