aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/nameres/path_resolution.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-12-22 14:37:07 +0000
committerAleksey Kladov <[email protected]>2019-12-22 14:37:53 +0000
commit6c3ddcfa501060cff3a7f81c179f712ef072c808 (patch)
tree513bb8b0a4ecb487dc1cf7be4bbc05c84ce9a975 /crates/ra_hir_def/src/nameres/path_resolution.rs
parente8da7d4061960844502e3064c33eef4a0dc3828e (diff)
Simplify
Diffstat (limited to 'crates/ra_hir_def/src/nameres/path_resolution.rs')
-rw-r--r--crates/ra_hir_def/src/nameres/path_resolution.rs12
1 files changed, 4 insertions, 8 deletions
diff --git a/crates/ra_hir_def/src/nameres/path_resolution.rs b/crates/ra_hir_def/src/nameres/path_resolution.rs
index 2dd779b66..378d49455 100644
--- a/crates/ra_hir_def/src/nameres/path_resolution.rs
+++ b/crates/ra_hir_def/src/nameres/path_resolution.rs
@@ -181,7 +181,7 @@ impl CrateDefMap {
181 181
182 // Since it is a qualified path here, it should not contains legacy macros 182 // Since it is a qualified path here, it should not contains legacy macros
183 match self[module.local_id].scope.get(&segment, prefer_module(i)) { 183 match self[module.local_id].scope.get(&segment, prefer_module(i)) {
184 Some(res) => res.def, 184 Some(def) => *def,
185 _ => { 185 _ => {
186 log::debug!("path segment {:?} not found", segment); 186 log::debug!("path segment {:?} not found", segment);
187 return ResolvePathResult::empty(ReachedFixedPoint::No); 187 return ResolvePathResult::empty(ReachedFixedPoint::No);
@@ -243,8 +243,7 @@ impl CrateDefMap {
243 // - std prelude 243 // - std prelude
244 let from_legacy_macro = 244 let from_legacy_macro =
245 self[module].scope.get_legacy_macro(name).map_or_else(PerNs::none, PerNs::macros); 245 self[module].scope.get_legacy_macro(name).map_or_else(PerNs::none, PerNs::macros);
246 let from_scope = 246 let from_scope = self[module].scope.get(name, shadow).copied().unwrap_or_else(PerNs::none);
247 self[module].scope.get(name, shadow).map_or_else(PerNs::none, |res| res.def);
248 let from_extern_prelude = 247 let from_extern_prelude =
249 self.extern_prelude.get(name).map_or(PerNs::none(), |&it| PerNs::types(it)); 248 self.extern_prelude.get(name).map_or(PerNs::none(), |&it| PerNs::types(it));
250 let from_prelude = self.resolve_in_prelude(db, name, shadow); 249 let from_prelude = self.resolve_in_prelude(db, name, shadow);
@@ -258,7 +257,7 @@ impl CrateDefMap {
258 shadow: BuiltinShadowMode, 257 shadow: BuiltinShadowMode,
259 ) -> PerNs { 258 ) -> PerNs {
260 let from_crate_root = 259 let from_crate_root =
261 self[self.root].scope.get(name, shadow).map_or_else(PerNs::none, |res| res.def); 260 self[self.root].scope.get(name, shadow).copied().unwrap_or_else(PerNs::none);
262 let from_extern_prelude = self.resolve_name_in_extern_prelude(name); 261 let from_extern_prelude = self.resolve_name_in_extern_prelude(name);
263 262
264 from_crate_root.or(from_extern_prelude) 263 from_crate_root.or(from_extern_prelude)
@@ -279,10 +278,7 @@ impl CrateDefMap {
279 keep = db.crate_def_map(prelude.krate); 278 keep = db.crate_def_map(prelude.krate);
280 &keep 279 &keep
281 }; 280 };
282 def_map[prelude.local_id] 281 def_map[prelude.local_id].scope.get(name, shadow).copied().unwrap_or_else(PerNs::none)
283 .scope
284 .get(name, shadow)
285 .map_or_else(PerNs::none, |res| res.def)
286 } else { 282 } else {
287 PerNs::none() 283 PerNs::none()
288 } 284 }