diff options
author | Aleksey Kladov <[email protected]> | 2019-12-22 14:37:07 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-12-22 14:37:53 +0000 |
commit | 6c3ddcfa501060cff3a7f81c179f712ef072c808 (patch) | |
tree | 513bb8b0a4ecb487dc1cf7be4bbc05c84ce9a975 /crates/ra_hir_def/src/nameres/path_resolution.rs | |
parent | e8da7d4061960844502e3064c33eef4a0dc3828e (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.rs | 12 |
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 | } |