aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres/collector.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-03-16 15:06:45 +0000
committerAleksey Kladov <[email protected]>2019-03-17 09:53:22 +0000
commitc51a6a7bdddf885cb833889a4550150d839eefdc (patch)
tree514f9daf80d58325a93fee6194377bd36e5170de /crates/ra_hir/src/nameres/collector.rs
parent0d6b8baa896f337dde27d569c09ebaab029e6daa (diff)
fix error on wrong path
Diffstat (limited to 'crates/ra_hir/src/nameres/collector.rs')
-rw-r--r--crates/ra_hir/src/nameres/collector.rs24
1 files changed, 14 insertions, 10 deletions
diff --git a/crates/ra_hir/src/nameres/collector.rs b/crates/ra_hir/src/nameres/collector.rs
index cbe850ba4..e7afc34c9 100644
--- a/crates/ra_hir/src/nameres/collector.rs
+++ b/crates/ra_hir/src/nameres/collector.rs
@@ -213,18 +213,22 @@ where
213 } 213 }
214 } 214 }
215 } else { 215 } else {
216 let last_segment = import.path.segments.last().unwrap(); 216 match import.path.segments.last() {
217 let name = import.alias.clone().unwrap_or_else(|| last_segment.name.clone()); 217 Some(last_segment) => {
218 log::debug!("resolved import {:?} ({:?}) to {:?}", name, import, def); 218 let name = import.alias.clone().unwrap_or_else(|| last_segment.name.clone());
219 219 log::debug!("resolved import {:?} ({:?}) to {:?}", name, import, def);
220 // extern crates in the crate root are special-cased to insert entries into the extern prelude: rust-lang/rust#54658 220
221 if import.is_extern_crate && module_id == self.def_map.root { 221 // extern crates in the crate root are special-cased to insert entries into the extern prelude: rust-lang/rust#54658
222 if let Some(def) = def.take_types() { 222 if import.is_extern_crate && module_id == self.def_map.root {
223 self.def_map.extern_prelude.insert(name.clone(), def); 223 if let Some(def) = def.take_types() {
224 self.def_map.extern_prelude.insert(name.clone(), def);
225 }
226 }
227 let resolution = Resolution { def, import: Some(import_id) };
228 self.update(module_id, Some(import_id), &[(name, resolution)]);
224 } 229 }
230 None => tested_by!(bogus_paths),
225 } 231 }
226 let resolution = Resolution { def, import: Some(import_id) };
227 self.update(module_id, Some(import_id), &[(name, resolution)]);
228 } 232 }
229 } 233 }
230 234