diff options
author | Aleksey Kladov <[email protected]> | 2019-06-08 18:42:02 +0100 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-06-08 18:42:02 +0100 |
commit | caefa6982bc57195687de11137997f1d62d791fe (patch) | |
tree | 4cdbfe1ae67d0eae6ba85b19cf40126898f43ac5 /crates/ra_hir/src/resolve.rs | |
parent | 780e1a365b10027c4bd4adcc939ab32da1d91492 (diff) |
remove some hacks from nameresolution for macros
Diffstat (limited to 'crates/ra_hir/src/resolve.rs')
-rw-r--r-- | crates/ra_hir/src/resolve.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/crates/ra_hir/src/resolve.rs b/crates/ra_hir/src/resolve.rs index 347bcf27d..1b987c1b6 100644 --- a/crates/ra_hir/src/resolve.rs +++ b/crates/ra_hir/src/resolve.rs | |||
@@ -2,11 +2,11 @@ | |||
2 | use std::sync::Arc; | 2 | use std::sync::Arc; |
3 | 3 | ||
4 | use rustc_hash::{FxHashMap, FxHashSet}; | 4 | use rustc_hash::{FxHashMap, FxHashSet}; |
5 | use either::Either; | ||
5 | 6 | ||
6 | use crate::{ | 7 | use crate::{ |
7 | ModuleDef, Trait, | 8 | ModuleDef, Trait, MacroDef, |
8 | code_model::Crate, | 9 | code_model::Crate, |
9 | MacroDefId, | ||
10 | db::HirDatabase, | 10 | db::HirDatabase, |
11 | name::{Name, KnownName}, | 11 | name::{Name, KnownName}, |
12 | nameres::{PerNs, CrateDefMap, CrateModuleId}, | 12 | nameres::{PerNs, CrateDefMap, CrateModuleId}, |
@@ -130,13 +130,16 @@ impl Resolver { | |||
130 | resolution | 130 | resolution |
131 | } | 131 | } |
132 | 132 | ||
133 | pub(crate) fn resolve_macro_call( | 133 | pub(crate) fn resolve_path_as_macro( |
134 | &self, | 134 | &self, |
135 | db: &impl HirDatabase, | 135 | db: &impl HirDatabase, |
136 | path: Option<Path>, | 136 | path: &Path, |
137 | ) -> Option<MacroDefId> { | 137 | ) -> Option<MacroDef> { |
138 | let m = self.module()?; | 138 | let (item_map, module) = self.module()?; |
139 | m.0.find_macro(db, m.1, &path?) | 139 | match item_map.resolve_path_with_macro(db, module, path) { |
140 | (Either::Right(macro_def), None) => Some(macro_def), | ||
141 | _ => None, | ||
142 | } | ||
140 | } | 143 | } |
141 | 144 | ||
142 | /// Returns the resolved path segments | 145 | /// Returns the resolved path segments |