@@ -639,7 +639,19 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> { |
|
|
639 |
639 |
let names = resolutions.iter().filter_map(|(&(ref i, _), resolution) |
640 |
640 |
if *i == ident { return None; } // Never suggest the same name |
641 |
641 |
match *resolution.borrow() { |
642 |
|
-NameResolution { binding: Some(_), .. } => Some(&i.name), |
|
642 |
+NameResolution { binding: Some(name_binding), .. } => { |
|
643 |
+match name_binding.kind { |
|
644 |
+NameBindingKind::Import { binding, .. } => { |
|
645 |
+match binding.kind { |
|
646 |
+// Never suggest the name that has binding error |
|
647 |
+// i.e. the name that cannot be previously resolved |
|
648 |
+NameBindingKind::Def(Def::Err) => return None, |
|
649 |
+ _ => Some(&i.name), |
|
650 |
+} |
|
651 |
+}, |
|
652 |
+ _ => Some(&i.name), |
|
653 |
+} |
|
654 |
+}, |
643 |
655 |
NameResolution { single_imports: SingleImports::None, .. } => None, |
644 |
656 |
_ => Some(&i.name), |
645 |
657 |
} |