diff options
author | Aleksey Kladov <[email protected]> | 2019-12-22 18:32:35 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-12-22 18:32:35 +0000 |
commit | 7c405c01567e814f18ebf8bdc6aa1f8f694919f0 (patch) | |
tree | c94bf2281d287691e72c28695a202589079750c8 /crates/ra_hir_def/src/item_scope.rs | |
parent | 007032f8504be1274972e4f23afaf0bc431d92d5 (diff) |
Simplify
Diffstat (limited to 'crates/ra_hir_def/src/item_scope.rs')
-rw-r--r-- | crates/ra_hir_def/src/item_scope.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/crates/ra_hir_def/src/item_scope.rs b/crates/ra_hir_def/src/item_scope.rs index 08d788cc9..e8ddcc3c2 100644 --- a/crates/ra_hir_def/src/item_scope.rs +++ b/crates/ra_hir_def/src/item_scope.rs | |||
@@ -70,20 +70,27 @@ impl ItemScope { | |||
70 | } | 70 | } |
71 | 71 | ||
72 | /// Get a name from current module scope, legacy macros are not included | 72 | /// Get a name from current module scope, legacy macros are not included |
73 | pub(crate) fn get(&self, name: &Name, shadow: BuiltinShadowMode) -> Option<PerNs> { | 73 | pub(crate) fn get(&self, name: &Name, shadow: BuiltinShadowMode) -> PerNs { |
74 | match shadow { | 74 | match shadow { |
75 | BuiltinShadowMode::Module => { | 75 | BuiltinShadowMode::Module => self |
76 | self.visible.get(name).or_else(|| BUILTIN_SCOPE.get(name)).copied() | 76 | .visible |
77 | } | 77 | .get(name) |
78 | .or_else(|| BUILTIN_SCOPE.get(name)) | ||
79 | .copied() | ||
80 | .unwrap_or_else(PerNs::none), | ||
78 | BuiltinShadowMode::Other => { | 81 | BuiltinShadowMode::Other => { |
79 | let item = self.visible.get(name).copied(); | 82 | let item = self.visible.get(name).copied(); |
80 | if let Some(def) = item { | 83 | if let Some(def) = item { |
81 | if let Some(ModuleDefId::ModuleId(_)) = def.take_types() { | 84 | if let Some(ModuleDefId::ModuleId(_)) = def.take_types() { |
82 | return BUILTIN_SCOPE.get(name).copied().or(item); | 85 | return BUILTIN_SCOPE |
86 | .get(name) | ||
87 | .copied() | ||
88 | .or(item) | ||
89 | .unwrap_or_else(PerNs::none); | ||
83 | } | 90 | } |
84 | } | 91 | } |
85 | 92 | ||
86 | item.or_else(|| BUILTIN_SCOPE.get(name).copied()) | 93 | item.or_else(|| BUILTIN_SCOPE.get(name).copied()).unwrap_or_else(PerNs::none) |
87 | } | 94 | } |
88 | } | 95 | } |
89 | } | 96 | } |