]> git.lizzy.rs Git - rust.git/commitdiff
show `self` suggestion when items are in the block
authorAndy Russell <arussell123@gmail.com>
Tue, 6 Sep 2016 03:08:21 +0000 (23:08 -0400)
committerAndy Russell <arussell123@gmail.com>
Tue, 6 Sep 2016 03:08:21 +0000 (23:08 -0400)
src/librustc_resolve/resolve_imports.rs
src/test/compile-fail/unresolved-import.rs

index 622d705485efd85c43e10402230fde4b521f706f..90c17866583a769e8d3f1a9d54862fe130c9ba03 100644 (file)
@@ -588,18 +588,16 @@ fn finalize_import(&mut self, directive: &'b ImportDirective<'b>) -> ResolveResu
             Success(module) => module,
             Indeterminate => return Indeterminate,
             Failed(err) => {
-                let self_module = self.current_module.clone();
+                let self_module = self.module_map[&self.current_module.normal_ancestor_id.unwrap()];
 
                 let resolve_from_self_result = self.resolve_module_path_from_root(
                     &self_module, &module_path, 0, Some(span));
 
-                return match resolve_from_self_result {
-                    Success(_) => {
-                        let msg = format!("Did you mean `self::{}`?",
-                                          &names_to_string(module_path));
-                        Failed(Some((span, msg)))
-                    },
-                    _ => Failed(err),
+                return if let Success(_) = resolve_from_self_result {
+                    let msg = format!("Did you mean `self::{}`?", &names_to_string(module_path));
+                    Failed(Some((span, msg)))
+                } else {
+                    Failed(err)
                 };
             },
         };
index 6421599cacb24f031daac8d6e45780ee1f4e0d12..0a9a437569730367b17de8bed377d0b8c17d9e64 100644 (file)
@@ -44,3 +44,14 @@ enum MyEnum {
     use MyEnum::*; //~ ERROR unresolved import `MyEnum::*` [E0432]
                    //~^ Did you mean `self::MyEnum`?
 }
+
+mod items {
+    enum Enum {
+        Variant
+    }
+
+    use Enum::*; //~ ERROR unresolved import `Enum::*` [E0432]
+                 //~^ Did you mean `self::Enum`?
+
+    fn item() {}
+}