summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMara Bos <m-ou.se@m-ou.se>2021-03-08 20:09:06 +0100
committerGitHub <noreply@github.com>2021-03-08 20:09:06 +0100
commit3908eec60fe4f95bcde989651e98b2a3b3965a4b (patch)
treed26c880126869cb6d0559130b0183f680bd11bfb /src/test
parenta5035c9995a87495267965b3a43bc2e1f66d747d (diff)
parent0eeae1abfcd8e588b41b01100db4dbc9384f6144 (diff)
downloadrust-3908eec60fe4f95bcde989651e98b2a3b3965a4b.tar.gz
rust-3908eec60fe4f95bcde989651e98b2a3b3965a4b.zip
Rollup merge of #82881 - Manishearth:crate-root, r=estebank
diagnostics: Be clear about "crate root" and `::foo` paths in resolve diagnostics

Various changes to make sure the diagnostics are clear about the differences in `::foo` paths across editions:

 - `::foo` will say "crate root" in 2015 and "list of imported crates" in 2018
 - `crate::` will never reference imported crates in 2018

Fixes https://github.com/rust-lang/rust/issues/82876
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/editions-crate-root-2015.rs21
-rw-r--r--src/test/ui/editions-crate-root-2015.stderr28
-rw-r--r--src/test/ui/editions-crate-root-2018.rs21
-rw-r--r--src/test/ui/editions-crate-root-2018.stderr28
-rw-r--r--src/test/ui/editions/edition-imports-virtual-2015-gated.stderr2
-rw-r--r--src/test/ui/resolve/raw-ident-in-path.rs2
-rw-r--r--src/test/ui/resolve/raw-ident-in-path.stderr4
-rw-r--r--src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.rs2
-rw-r--r--src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.stderr4
9 files changed, 105 insertions, 7 deletions
diff --git a/src/test/ui/editions-crate-root-2015.rs b/src/test/ui/editions-crate-root-2015.rs
new file mode 100644
index 00000000000..4c890e3ae69
--- /dev/null
+++ b/src/test/ui/editions-crate-root-2015.rs
@@ -0,0 +1,21 @@
+// edition:2015
+
+mod inner {
+    fn global_inner(_: ::nonexistant::Foo) {
+        //~^ ERROR failed to resolve: maybe a missing crate `nonexistant`?
+    }
+    fn crate_inner(_: crate::nonexistant::Foo) {
+        //~^ ERROR failed to resolve: maybe a missing crate `nonexistant`?
+    }
+
+    fn bare_global(_: ::nonexistant) {
+        //~^ ERROR cannot find type `nonexistant` in the crate root
+    }
+    fn bare_crate(_: crate::nonexistant) {
+        //~^ ERROR cannot find type `nonexistant` in the crate root
+    }
+}
+
+fn main() {
+
+}
diff --git a/src/test/ui/editions-crate-root-2015.stderr b/src/test/ui/editions-crate-root-2015.stderr
new file mode 100644
index 00000000000..f8d65fec3d1
--- /dev/null
+++ b/src/test/ui/editions-crate-root-2015.stderr
@@ -0,0 +1,28 @@
+error[E0433]: failed to resolve: maybe a missing crate `nonexistant`?
+  --> $DIR/editions-crate-root-2015.rs:4:26
+   |
+LL |     fn global_inner(_: ::nonexistant::Foo) {
+   |                          ^^^^^^^^^^^ maybe a missing crate `nonexistant`?
+
+error[E0433]: failed to resolve: maybe a missing crate `nonexistant`?
+  --> $DIR/editions-crate-root-2015.rs:7:30
+   |
+LL |     fn crate_inner(_: crate::nonexistant::Foo) {
+   |                              ^^^^^^^^^^^ maybe a missing crate `nonexistant`?
+
+error[E0412]: cannot find type `nonexistant` in the crate root
+  --> $DIR/editions-crate-root-2015.rs:11:25
+   |
+LL |     fn bare_global(_: ::nonexistant) {
+   |                         ^^^^^^^^^^^ not found in the crate root
+
+error[E0412]: cannot find type `nonexistant` in the crate root
+  --> $DIR/editions-crate-root-2015.rs:14:29
+   |
+LL |     fn bare_crate(_: crate::nonexistant) {
+   |                             ^^^^^^^^^^^ not found in the crate root
+
+error: aborting due to 4 previous errors
+
+Some errors have detailed explanations: E0412, E0433.
+For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/editions-crate-root-2018.rs b/src/test/ui/editions-crate-root-2018.rs
new file mode 100644
index 00000000000..61e4329bbb3
--- /dev/null
+++ b/src/test/ui/editions-crate-root-2018.rs
@@ -0,0 +1,21 @@
+// edition:2018
+
+mod inner {
+    fn global_inner(_: ::nonexistant::Foo) {
+        //~^ ERROR failed to resolve: could not find `nonexistant` in the list of imported crates
+    }
+    fn crate_inner(_: crate::nonexistant::Foo) {
+        //~^ ERROR failed to resolve: could not find `nonexistant` in the crate root
+    }
+
+    fn bare_global(_: ::nonexistant) {
+        //~^ ERROR cannot find crate `nonexistant` in the list of imported crates
+    }
+    fn bare_crate(_: crate::nonexistant) {
+        //~^ ERROR cannot find type `nonexistant` in the crate root
+    }
+}
+
+fn main() {
+
+}
diff --git a/src/test/ui/editions-crate-root-2018.stderr b/src/test/ui/editions-crate-root-2018.stderr
new file mode 100644
index 00000000000..967a5a2fca1
--- /dev/null
+++ b/src/test/ui/editions-crate-root-2018.stderr
@@ -0,0 +1,28 @@
+error[E0433]: failed to resolve: could not find `nonexistant` in the list of imported crates
+  --> $DIR/editions-crate-root-2018.rs:4:26
+   |
+LL |     fn global_inner(_: ::nonexistant::Foo) {
+   |                          ^^^^^^^^^^^ could not find `nonexistant` in the list of imported crates
+
+error[E0433]: failed to resolve: could not find `nonexistant` in the crate root
+  --> $DIR/editions-crate-root-2018.rs:7:30
+   |
+LL |     fn crate_inner(_: crate::nonexistant::Foo) {
+   |                              ^^^^^^^^^^^ could not find `nonexistant` in the crate root
+
+error[E0412]: cannot find crate `nonexistant` in the list of imported crates
+  --> $DIR/editions-crate-root-2018.rs:11:25
+   |
+LL |     fn bare_global(_: ::nonexistant) {
+   |                         ^^^^^^^^^^^ not found in the list of imported crates
+
+error[E0412]: cannot find type `nonexistant` in the crate root
+  --> $DIR/editions-crate-root-2018.rs:14:29
+   |
+LL |     fn bare_crate(_: crate::nonexistant) {
+   |                             ^^^^^^^^^^^ not found in the crate root
+
+error: aborting due to 4 previous errors
+
+Some errors have detailed explanations: E0412, E0433.
+For more information about an error, try `rustc --explain E0412`.
diff --git a/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr b/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr
index 06605c6f208..1cde0f72140 100644
--- a/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr
+++ b/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr
@@ -2,7 +2,7 @@ error[E0432]: unresolved import `E`
   --> $DIR/edition-imports-virtual-2015-gated.rs:8:5
    |
 LL |     gen_gated!();
-   |     ^^^^^^^^^^^^^ could not find `E` in crate root
+   |     ^^^^^^^^^^^^^ could not find `E` in the list of imported crates
    |
    = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
 
diff --git a/src/test/ui/resolve/raw-ident-in-path.rs b/src/test/ui/resolve/raw-ident-in-path.rs
index 1bcbef59437..7f1163bebde 100644
--- a/src/test/ui/resolve/raw-ident-in-path.rs
+++ b/src/test/ui/resolve/raw-ident-in-path.rs
@@ -1,5 +1,5 @@
 // Regression test for issue #63882.
 
-type A = crate::r#break; //~ ERROR cannot find type `r#break` in module `crate`
+type A = crate::r#break; //~ ERROR cannot find type `r#break` in the crate root
 
 fn main() {}
diff --git a/src/test/ui/resolve/raw-ident-in-path.stderr b/src/test/ui/resolve/raw-ident-in-path.stderr
index f2efcbc8e85..771dacbbb20 100644
--- a/src/test/ui/resolve/raw-ident-in-path.stderr
+++ b/src/test/ui/resolve/raw-ident-in-path.stderr
@@ -1,8 +1,8 @@
-error[E0412]: cannot find type `r#break` in module `crate`
+error[E0412]: cannot find type `r#break` in the crate root
   --> $DIR/raw-ident-in-path.rs:3:17
    |
 LL | type A = crate::r#break;
-   |                 ^^^^^^^ not found in `crate`
+   |                 ^^^^^^^ not found in the crate root
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.rs b/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.rs
index 61212f299be..def60feb5a6 100644
--- a/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.rs
+++ b/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.rs
@@ -2,5 +2,5 @@
 
 fn main() {
     let s = ::xcrate::S;
-    //~^ ERROR failed to resolve: could not find `xcrate` in crate root
+    //~^ ERROR failed to resolve: could not find `xcrate` in the list of imported crates
 }
diff --git a/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.stderr b/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.stderr
index 8b2a6933f37..7df4f06d1c7 100644
--- a/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.stderr
+++ b/src/test/ui/rfc-2126-extern-absolute-paths/non-existent-2.stderr
@@ -1,8 +1,8 @@
-error[E0433]: failed to resolve: could not find `xcrate` in crate root
+error[E0433]: failed to resolve: could not find `xcrate` in the list of imported crates
   --> $DIR/non-existent-2.rs:4:15
    |
 LL |     let s = ::xcrate::S;
-   |               ^^^^^^ could not find `xcrate` in crate root
+   |               ^^^^^^ could not find `xcrate` in the list of imported crates
 
 error: aborting due to previous error