about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2018-09-15 17:52:59 +0300
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2018-09-15 22:48:10 +0300
commit653cd47c09454c150fd9a61ff654710bbd7ba5b8 (patch)
tree318db6984b1d1206fdda2fb01d32ac1744056a69
parent38c82a2180eee975e88017d26fa86726b3594d7a (diff)
downloadrust-653cd47c09454c150fd9a61ff654710bbd7ba5b8.tar.gz
rust-653cd47c09454c150fd9a61ff654710bbd7ba5b8.zip
rustc_resolve: use `continue` instead of `return` to "exit" a loop iteration.
-rw-r--r--src/librustc_resolve/resolve_imports.rs4
-rw-r--r--src/test/ui/run-pass/uniform-paths/basic.rs2
-rw-r--r--src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.rs27
-rw-r--r--src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.stderr9
-rw-r--r--src/test/ui/rust-2018/uniform-paths/issue-54253.rs29
-rw-r--r--src/test/ui/rust-2018/uniform-paths/issue-54253.stderr9
6 files changed, 77 insertions, 3 deletions
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index c86d430face..dc4a76db692 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -746,7 +746,7 @@ impl<'a, 'b:'a, 'c: 'b> ImportResolver<'a, 'b, 'c> {
             // Currently imports can't resolve in non-module scopes,
             // we only have canaries in them for future-proofing.
             if external_crate.is_none() && results.module_scope.is_none() {
-                return;
+                continue;
             }
 
             {
@@ -761,7 +761,7 @@ impl<'a, 'b:'a, 'c: 'b> ImportResolver<'a, 'b, 'c> {
                 let possible_resultions =
                     1 + all_results.filter(|&def| def != first).count();
                 if possible_resultions <= 1 {
-                    return;
+                    continue;
                 }
             }
 
diff --git a/src/test/ui/run-pass/uniform-paths/basic.rs b/src/test/ui/run-pass/uniform-paths/basic.rs
index fbdac98d258..7d997fe493a 100644
--- a/src/test/ui/run-pass/uniform-paths/basic.rs
+++ b/src/test/ui/run-pass/uniform-paths/basic.rs
@@ -37,7 +37,7 @@ fn main() {
     {
         // Test that having `std_io` in a module scope and a non-module
         // scope is allowed, when both resolve to the same definition.
-        use std::io as std_io;
+        use ::std::io as std_io;
         use std_io::stdout;
         stdout();
     }
diff --git a/src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.rs b/src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.rs
new file mode 100644
index 00000000000..1f19a05d7a7
--- /dev/null
+++ b/src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.rs
@@ -0,0 +1,27 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// edition:2018
+
+// Dummy import to introduce `uniform_paths` canaries.
+use std;
+
+// fn version() -> &'static str {""}
+
+mod foo {
+    // Error wasn't reported, despite `version` being commented out above.
+    use crate::version; //~ ERROR unresolved import `crate::version`
+
+    fn bar() {
+        version();
+    }
+}
+
+fn main() {}
diff --git a/src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.stderr b/src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.stderr
new file mode 100644
index 00000000000..6dcc451c60a
--- /dev/null
+++ b/src/test/ui/rust-2018/uniform-paths-forward-compat/issue-54253.stderr
@@ -0,0 +1,9 @@
+error[E0432]: unresolved import `crate::version`
+  --> $DIR/issue-54253.rs:20:9
+   |
+LL |     use crate::version; //~ ERROR unresolved import `crate::version`
+   |         ^^^^^^^^^^^^^^ no `version` in the root
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0432`.
diff --git a/src/test/ui/rust-2018/uniform-paths/issue-54253.rs b/src/test/ui/rust-2018/uniform-paths/issue-54253.rs
new file mode 100644
index 00000000000..7ca5c9e9eae
--- /dev/null
+++ b/src/test/ui/rust-2018/uniform-paths/issue-54253.rs
@@ -0,0 +1,29 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// edition:2018
+
+#![feature(uniform_paths)]
+
+// Dummy import to introduce `uniform_paths` canaries.
+use std;
+
+// fn version() -> &'static str {""}
+
+mod foo {
+    // Error wasn't reported, despite `version` being commented out above.
+    use crate::version; //~ ERROR unresolved import `crate::version`
+
+    fn bar() {
+        version();
+    }
+}
+
+fn main() {}
diff --git a/src/test/ui/rust-2018/uniform-paths/issue-54253.stderr b/src/test/ui/rust-2018/uniform-paths/issue-54253.stderr
new file mode 100644
index 00000000000..0016e21ef4d
--- /dev/null
+++ b/src/test/ui/rust-2018/uniform-paths/issue-54253.stderr
@@ -0,0 +1,9 @@
+error[E0432]: unresolved import `crate::version`
+  --> $DIR/issue-54253.rs:22:9
+   |
+LL |     use crate::version; //~ ERROR unresolved import `crate::version`
+   |         ^^^^^^^^^^^^^^ no `version` in the root
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0432`.