about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/imports/issue-109148.rs3
-rw-r--r--tests/ui/imports/issue-109148.stderr44
-rw-r--r--tests/ui/macros/issue-78325-inconsistent-resolution.rs5
-rw-r--r--tests/ui/macros/issue-78325-inconsistent-resolution.stderr46
-rw-r--r--tests/ui/resolve/extern-prelude-speculative.rs10
-rw-r--r--tests/ui/resolve/visibility-indeterminate.rs2
-rw-r--r--tests/ui/resolve/visibility-indeterminate.stderr8
-rw-r--r--tests/ui/rust-2018/uniform-paths/deadlock.rs2
-rw-r--r--tests/ui/rust-2018/uniform-paths/deadlock.stderr8
9 files changed, 110 insertions, 18 deletions
diff --git a/tests/ui/imports/issue-109148.rs b/tests/ui/imports/issue-109148.rs
index 9d657a87381..49fc2fe0f5b 100644
--- a/tests/ui/imports/issue-109148.rs
+++ b/tests/ui/imports/issue-109148.rs
@@ -10,6 +10,7 @@ macro_rules! m {
 
 m!();
 
-use std::mem;
+use std::mem; //~ ERROR `std` is ambiguous
+use ::std::mem as _; //~ ERROR `std` is ambiguous
 
 fn main() {}
diff --git a/tests/ui/imports/issue-109148.stderr b/tests/ui/imports/issue-109148.stderr
index b7f1f69dc8f..eead173ba7a 100644
--- a/tests/ui/imports/issue-109148.stderr
+++ b/tests/ui/imports/issue-109148.stderr
@@ -9,5 +9,47 @@ LL | m!();
    |
    = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error: aborting due to 1 previous error
+error[E0659]: `std` is ambiguous
+  --> $DIR/issue-109148.rs:13:5
+   |
+LL | use std::mem;
+   |     ^^^ ambiguous name
+   |
+   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
+   = note: `std` could refer to a built-in crate
+   = help: use `::std` to refer to this crate unambiguously
+note: `std` could also refer to the crate imported here
+  --> $DIR/issue-109148.rs:6:9
+   |
+LL |         extern crate core as std;
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | m!();
+   | ---- in this macro invocation
+   = help: use `::std` to refer to this crate unambiguously
+   = help: or use `crate::std` to refer to this crate unambiguously
+   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0659]: `std` is ambiguous
+  --> $DIR/issue-109148.rs:14:7
+   |
+LL | use ::std::mem as _;
+   |       ^^^ ambiguous name
+   |
+   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
+   = note: `std` could refer to a built-in crate
+   = help: use `::std` to refer to this crate unambiguously
+note: `std` could also refer to the crate imported here
+  --> $DIR/issue-109148.rs:6:9
+   |
+LL |         extern crate core as std;
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | m!();
+   | ---- in this macro invocation
+   = help: use `::std` to refer to this crate unambiguously
+   = note: this error originates in the macro `m` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to 3 previous errors
 
+For more information about this error, try `rustc --explain E0659`.
diff --git a/tests/ui/macros/issue-78325-inconsistent-resolution.rs b/tests/ui/macros/issue-78325-inconsistent-resolution.rs
index 919eca4f9bf..021ba599d12 100644
--- a/tests/ui/macros/issue-78325-inconsistent-resolution.rs
+++ b/tests/ui/macros/issue-78325-inconsistent-resolution.rs
@@ -1,3 +1,5 @@
+//@ edition: 2018
+
 macro_rules! define_other_core {
     ( ) => {
         extern crate std as core;
@@ -6,7 +8,8 @@ macro_rules! define_other_core {
 }
 
 fn main() {
-    core::panic!();
+    core::panic!(); //~ ERROR `core` is ambiguous
+    ::core::panic!(); //~ ERROR `core` is ambiguous
 }
 
 define_other_core!();
diff --git a/tests/ui/macros/issue-78325-inconsistent-resolution.stderr b/tests/ui/macros/issue-78325-inconsistent-resolution.stderr
index b75e4a9c9e0..5574a1f0491 100644
--- a/tests/ui/macros/issue-78325-inconsistent-resolution.stderr
+++ b/tests/ui/macros/issue-78325-inconsistent-resolution.stderr
@@ -1,5 +1,5 @@
 error: macro-expanded `extern crate` items cannot shadow names passed with `--extern`
-  --> $DIR/issue-78325-inconsistent-resolution.rs:3:9
+  --> $DIR/issue-78325-inconsistent-resolution.rs:5:9
    |
 LL |         extern crate std as core;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -9,5 +9,47 @@ LL | define_other_core!();
    |
    = note: this error originates in the macro `define_other_core` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error: aborting due to 1 previous error
+error[E0659]: `core` is ambiguous
+  --> $DIR/issue-78325-inconsistent-resolution.rs:11:5
+   |
+LL |     core::panic!();
+   |     ^^^^ ambiguous name
+   |
+   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
+   = note: `core` could refer to a built-in crate
+   = help: use `::core` to refer to this crate unambiguously
+note: `core` could also refer to the crate imported here
+  --> $DIR/issue-78325-inconsistent-resolution.rs:5:9
+   |
+LL |         extern crate std as core;
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | define_other_core!();
+   | -------------------- in this macro invocation
+   = help: use `::core` to refer to this crate unambiguously
+   = help: or use `crate::core` to refer to this crate unambiguously
+   = note: this error originates in the macro `define_other_core` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0659]: `core` is ambiguous
+  --> $DIR/issue-78325-inconsistent-resolution.rs:12:7
+   |
+LL |     ::core::panic!();
+   |       ^^^^ ambiguous name
+   |
+   = note: ambiguous because of a conflict between a macro-expanded name and a less macro-expanded name from outer scope during import or macro resolution
+   = note: `core` could refer to a built-in crate
+   = help: use `::core` to refer to this crate unambiguously
+note: `core` could also refer to the crate imported here
+  --> $DIR/issue-78325-inconsistent-resolution.rs:5:9
+   |
+LL |         extern crate std as core;
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
+...
+LL | define_other_core!();
+   | -------------------- in this macro invocation
+   = help: use `::core` to refer to this crate unambiguously
+   = note: this error originates in the macro `define_other_core` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to 3 previous errors
 
+For more information about this error, try `rustc --explain E0659`.
diff --git a/tests/ui/resolve/extern-prelude-speculative.rs b/tests/ui/resolve/extern-prelude-speculative.rs
new file mode 100644
index 00000000000..afbc32d22ac
--- /dev/null
+++ b/tests/ui/resolve/extern-prelude-speculative.rs
@@ -0,0 +1,10 @@
+// Non-existent path in `--extern` doesn't result in an error if it's shadowed by `extern crate`.
+
+//@ check-pass
+//@ compile-flags: --extern something=/path/to/nowhere
+
+extern crate std as something;
+
+fn main() {
+    something::println!();
+}
diff --git a/tests/ui/resolve/visibility-indeterminate.rs b/tests/ui/resolve/visibility-indeterminate.rs
index 17e5fec4701..181bb290774 100644
--- a/tests/ui/resolve/visibility-indeterminate.rs
+++ b/tests/ui/resolve/visibility-indeterminate.rs
@@ -2,6 +2,6 @@
 
 foo!(); //~ ERROR cannot find macro `foo` in this scope
 
-pub(in ::bar) struct Baz {} //~ ERROR cannot determine resolution for the visibility
+pub(in ::bar) struct Baz {} //~ ERROR failed to resolve: could not find `bar` in the list of imported crates
 
 fn main() {}
diff --git a/tests/ui/resolve/visibility-indeterminate.stderr b/tests/ui/resolve/visibility-indeterminate.stderr
index 84d82ce8522..bbe28747f7c 100644
--- a/tests/ui/resolve/visibility-indeterminate.stderr
+++ b/tests/ui/resolve/visibility-indeterminate.stderr
@@ -1,8 +1,8 @@
-error[E0578]: cannot determine resolution for the visibility
-  --> $DIR/visibility-indeterminate.rs:5:8
+error[E0433]: failed to resolve: could not find `bar` in the list of imported crates
+  --> $DIR/visibility-indeterminate.rs:5:10
    |
 LL | pub(in ::bar) struct Baz {}
-   |        ^^^^^
+   |          ^^^ could not find `bar` in the list of imported crates
 
 error: cannot find macro `foo` in this scope
   --> $DIR/visibility-indeterminate.rs:3:1
@@ -12,4 +12,4 @@ LL | foo!();
 
 error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0578`.
+For more information about this error, try `rustc --explain E0433`.
diff --git a/tests/ui/rust-2018/uniform-paths/deadlock.rs b/tests/ui/rust-2018/uniform-paths/deadlock.rs
index 4011ba3ee28..d2296c51bdd 100644
--- a/tests/ui/rust-2018/uniform-paths/deadlock.rs
+++ b/tests/ui/rust-2018/uniform-paths/deadlock.rs
@@ -2,7 +2,7 @@
 //@ compile-flags:--extern foo --extern bar
 
 use bar::foo; //~ ERROR can't find crate for `bar`
-use foo::bar; //~ ERROR can't find crate for `foo`
+use foo::bar;
 //~^^ ERROR unresolved imports `bar::foo`, `foo::bar`
 
 fn main() {}
diff --git a/tests/ui/rust-2018/uniform-paths/deadlock.stderr b/tests/ui/rust-2018/uniform-paths/deadlock.stderr
index 8b9863948bd..c50bc16ac55 100644
--- a/tests/ui/rust-2018/uniform-paths/deadlock.stderr
+++ b/tests/ui/rust-2018/uniform-paths/deadlock.stderr
@@ -4,12 +4,6 @@ error[E0463]: can't find crate for `bar`
 LL | use bar::foo;
    |     ^^^ can't find crate
 
-error[E0463]: can't find crate for `foo`
-  --> $DIR/deadlock.rs:5:5
-   |
-LL | use foo::bar;
-   |     ^^^ can't find crate
-
 error[E0432]: unresolved imports `bar::foo`, `foo::bar`
   --> $DIR/deadlock.rs:4:5
    |
@@ -18,7 +12,7 @@ LL | use bar::foo;
 LL | use foo::bar;
    |     ^^^^^^^^
 
-error: aborting due to 3 previous errors
+error: aborting due to 2 previous errors
 
 Some errors have detailed explanations: E0432, E0463.
 For more information about an error, try `rustc --explain E0432`.