// 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;
}
{
let possible_resultions =
1 + all_results.filter(|&def| def != first).count();
if possible_resultions <= 1 {
- return;
+ continue;
}
}
{
// 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();
}
--- /dev/null
+// 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() {}
--- /dev/null
+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`.
--- /dev/null
+// 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() {}
--- /dev/null
+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`.