about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-07-04 02:01:24 +0000
committerbors <bors@rust-lang.org>2023-07-04 02:01:24 +0000
commite728b5b98d67c8493b37e56c2318ca3e7356d05a (patch)
treeeb084787512470a8f763a8e36fccfda7c147a2df /tests
parent0ab38e95bb1cbf0bd038d359bdecbfa501f003a7 (diff)
parentb26701ea7964d444f32a43710a763eb0989d9d7e (diff)
downloadrust-e728b5b98d67c8493b37e56c2318ca3e7356d05a.tar.gz
rust-e728b5b98d67c8493b37e56c2318ca3e7356d05a.zip
Auto merge of #112917 - chenyukang:yukang-fix-112590, r=estebank
Suggest importing for partial mod path matching in name resolving

Fixes #112590
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/macros/builtin-prelude-no-accidents.stderr32
-rw-r--r--tests/ui/resolve/export-fully-qualified-2018.rs13
-rw-r--r--tests/ui/resolve/export-fully-qualified-2018.stderr14
-rw-r--r--tests/ui/resolve/export-fully-qualified.rs2
-rw-r--r--tests/ui/resolve/export-fully-qualified.stderr7
-rw-r--r--tests/ui/suggestions/crate-or-module-typo.stderr5
-rw-r--r--tests/ui/suggestions/issue-112590-suggest-import.rs10
-rw-r--r--tests/ui/suggestions/issue-112590-suggest-import.stderr36
8 files changed, 110 insertions, 9 deletions
diff --git a/tests/ui/macros/builtin-prelude-no-accidents.stderr b/tests/ui/macros/builtin-prelude-no-accidents.stderr
index 8cd9a63b808..b726e186241 100644
--- a/tests/ui/macros/builtin-prelude-no-accidents.stderr
+++ b/tests/ui/macros/builtin-prelude-no-accidents.stderr
@@ -3,21 +3,37 @@ error[E0433]: failed to resolve: use of undeclared crate or module `env`
    |
 LL |     env::current_dir;
    |     ^^^ use of undeclared crate or module `env`
-
-error[E0433]: failed to resolve: use of undeclared crate or module `vec`
-  --> $DIR/builtin-prelude-no-accidents.rs:7:14
    |
-LL |     type B = vec::Vec<u8>;
-   |              ^^^
-   |              |
-   |              use of undeclared crate or module `vec`
-   |              help: a struct with a similar name exists (notice the capitalization): `Vec`
+help: consider importing this module
+   |
+LL + use std::env;
+   |
 
 error[E0433]: failed to resolve: use of undeclared crate or module `panic`
   --> $DIR/builtin-prelude-no-accidents.rs:6:14
    |
 LL |     type A = panic::PanicInfo;
    |              ^^^^^ use of undeclared crate or module `panic`
+   |
+help: consider importing this module
+   |
+LL + use std::panic;
+   |
+
+error[E0433]: failed to resolve: use of undeclared crate or module `vec`
+  --> $DIR/builtin-prelude-no-accidents.rs:7:14
+   |
+LL |     type B = vec::Vec<u8>;
+   |              ^^^ use of undeclared crate or module `vec`
+   |
+help: a struct with a similar name exists
+   |
+LL |     type B = Vec::Vec<u8>;
+   |              ~~~
+help: consider importing this module
+   |
+LL + use std::vec;
+   |
 
 error: aborting due to 3 previous errors
 
diff --git a/tests/ui/resolve/export-fully-qualified-2018.rs b/tests/ui/resolve/export-fully-qualified-2018.rs
new file mode 100644
index 00000000000..afd48acb6bb
--- /dev/null
+++ b/tests/ui/resolve/export-fully-qualified-2018.rs
@@ -0,0 +1,13 @@
+// edition:2018
+
+// In this test baz isn't resolved when called as foo.baz even though
+// it's called from inside foo. This is somewhat surprising and may
+// want to change eventually.
+
+mod foo {
+    pub fn bar() { foo::baz(); } //~ ERROR failed to resolve: use of undeclared crate or module `foo`
+
+    fn baz() { }
+}
+
+fn main() { }
diff --git a/tests/ui/resolve/export-fully-qualified-2018.stderr b/tests/ui/resolve/export-fully-qualified-2018.stderr
new file mode 100644
index 00000000000..366ffd9bb2b
--- /dev/null
+++ b/tests/ui/resolve/export-fully-qualified-2018.stderr
@@ -0,0 +1,14 @@
+error[E0433]: failed to resolve: use of undeclared crate or module `foo`
+  --> $DIR/export-fully-qualified-2018.rs:8:20
+   |
+LL |     pub fn bar() { foo::baz(); }
+   |                    ^^^ use of undeclared crate or module `foo`
+   |
+help: consider importing this module
+   |
+LL +     use crate::foo;
+   |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0433`.
diff --git a/tests/ui/resolve/export-fully-qualified.rs b/tests/ui/resolve/export-fully-qualified.rs
index 4e73a2c5488..9d4daf4cd79 100644
--- a/tests/ui/resolve/export-fully-qualified.rs
+++ b/tests/ui/resolve/export-fully-qualified.rs
@@ -1,3 +1,5 @@
+// edition:2015
+
 // In this test baz isn't resolved when called as foo.baz even though
 // it's called from inside foo. This is somewhat surprising and may
 // want to change eventually.
diff --git a/tests/ui/resolve/export-fully-qualified.stderr b/tests/ui/resolve/export-fully-qualified.stderr
index 7ee352e1232..0cd516ee1b1 100644
--- a/tests/ui/resolve/export-fully-qualified.stderr
+++ b/tests/ui/resolve/export-fully-qualified.stderr
@@ -1,8 +1,13 @@
 error[E0433]: failed to resolve: use of undeclared crate or module `foo`
-  --> $DIR/export-fully-qualified.rs:6:20
+  --> $DIR/export-fully-qualified.rs:8:20
    |
 LL |     pub fn bar() { foo::baz(); }
    |                    ^^^ use of undeclared crate or module `foo`
+   |
+help: consider importing this module
+   |
+LL +     use foo;
+   |
 
 error: aborting due to previous error
 
diff --git a/tests/ui/suggestions/crate-or-module-typo.stderr b/tests/ui/suggestions/crate-or-module-typo.stderr
index 98b88b4fb92..5e7a7685ab0 100644
--- a/tests/ui/suggestions/crate-or-module-typo.stderr
+++ b/tests/ui/suggestions/crate-or-module-typo.stderr
@@ -36,6 +36,11 @@ error[E0433]: failed to resolve: use of undeclared crate or module `bar`
    |
 LL |     pub fn bar() { bar::baz(); }
    |                    ^^^ use of undeclared crate or module `bar`
+   |
+help: consider importing this module
+   |
+LL +     use crate::bar;
+   |
 
 error: aborting due to 4 previous errors
 
diff --git a/tests/ui/suggestions/issue-112590-suggest-import.rs b/tests/ui/suggestions/issue-112590-suggest-import.rs
new file mode 100644
index 00000000000..0938814c559
--- /dev/null
+++ b/tests/ui/suggestions/issue-112590-suggest-import.rs
@@ -0,0 +1,10 @@
+pub struct S;
+
+impl fmt::Debug for S { //~ ERROR failed to resolve: use of undeclared crate or module `fmt`
+    fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result { //~ ERROR failed to resolve: use of undeclared crate or module `fmt`
+        //~^ ERROR failed to resolve: use of undeclared crate or module `fmt`
+        Ok(())
+    }
+}
+
+fn main() { }
diff --git a/tests/ui/suggestions/issue-112590-suggest-import.stderr b/tests/ui/suggestions/issue-112590-suggest-import.stderr
new file mode 100644
index 00000000000..aeac18c16f0
--- /dev/null
+++ b/tests/ui/suggestions/issue-112590-suggest-import.stderr
@@ -0,0 +1,36 @@
+error[E0433]: failed to resolve: use of undeclared crate or module `fmt`
+  --> $DIR/issue-112590-suggest-import.rs:3:6
+   |
+LL | impl fmt::Debug for S {
+   |      ^^^ use of undeclared crate or module `fmt`
+   |
+help: consider importing this module
+   |
+LL + use std::fmt;
+   |
+
+error[E0433]: failed to resolve: use of undeclared crate or module `fmt`
+  --> $DIR/issue-112590-suggest-import.rs:4:28
+   |
+LL |     fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
+   |                            ^^^ use of undeclared crate or module `fmt`
+   |
+help: consider importing this module
+   |
+LL + use std::fmt;
+   |
+
+error[E0433]: failed to resolve: use of undeclared crate or module `fmt`
+  --> $DIR/issue-112590-suggest-import.rs:4:51
+   |
+LL |     fn fmt(&self, _f: &mut fmt::Formatter<'_>) -> fmt::Result {
+   |                                                   ^^^ use of undeclared crate or module `fmt`
+   |
+help: consider importing this module
+   |
+LL + use std::fmt;
+   |
+
+error: aborting due to 3 previous errors
+
+For more information about this error, try `rustc --explain E0433`.