about summary refs log tree commit diff
path: root/tests/ui
diff options
context:
space:
mode:
authorZachary S <zasample18+github@gmail.com>2025-01-30 16:28:00 -0600
committerZachary S <zasample18+github@gmail.com>2025-02-18 13:11:37 -0600
commitfe37adab4b378d68eda8a8893339606d7f381465 (patch)
tree9eb168ce9e4cb70f05d0978e96d5abb2c88b0ec9 /tests/ui
parent3b022d8ceea570db9730be34d964f0cc663a567f (diff)
downloadrust-fe37adab4b378d68eda8a8893339606d7f381465.tar.gz
rust-fe37adab4b378d68eda8a8893339606d7f381465.zip
Suggest using :: instead of . in more cases.
When `Foo.field` or `Foo.method()` exprs are encountered, suggest `Foo::field` or `Foo::method()` when Foo is a type alias, not just
a struct, trait, or module.

Also rename test for this suggestion from issue-22692.rs to something more meaningful.
Diffstat (limited to 'tests/ui')
-rw-r--r--tests/ui/resolve/dot-notation-type-namespace-suggest-path-sep.rs (renamed from tests/ui/resolve/issue-22692.rs)20
-rw-r--r--tests/ui/resolve/dot-notation-type-namespace-suggest-path-sep.stderr (renamed from tests/ui/resolve/issue-22692.stderr)51
2 files changed, 62 insertions, 9 deletions
diff --git a/tests/ui/resolve/issue-22692.rs b/tests/ui/resolve/dot-notation-type-namespace-suggest-path-sep.rs
index 31a76261408..104d11f685c 100644
--- a/tests/ui/resolve/issue-22692.rs
+++ b/tests/ui/resolve/dot-notation-type-namespace-suggest-path-sep.rs
@@ -1,3 +1,11 @@
+// see also https://github.com/rust-lang/rust/issues/22692
+
+type Alias = Vec<u32>;
+
+mod foo {
+    fn bar() {}
+}
+
 fn main() {
     let _ = String.new();
     //~^ ERROR expected value, found struct `String`
@@ -10,6 +18,18 @@ fn main() {
     let _ = Vec::<()>.with_capacity(1);
     //~^ ERROR expected value, found struct `Vec`
     //~| HELP use the path separator
+
+    let _ = Alias.new();
+    //~^ ERROR expected value, found type alias `Alias`
+    //~| HELP use the path separator
+
+    let _ = Alias.default;
+    //~^ ERROR expected value, found type alias `Alias`
+    //~| HELP use the path separator
+
+    let _ = foo.bar;
+    //~^ ERROR expected value, found module `foo`
+    //~| HELP use the path separator
 }
 
 macro_rules! Type {
diff --git a/tests/ui/resolve/issue-22692.stderr b/tests/ui/resolve/dot-notation-type-namespace-suggest-path-sep.stderr
index 546f12b35c1..a5397306b01 100644
--- a/tests/ui/resolve/issue-22692.stderr
+++ b/tests/ui/resolve/dot-notation-type-namespace-suggest-path-sep.stderr
@@ -1,5 +1,5 @@
 error[E0423]: expected value, found struct `String`
-  --> $DIR/issue-22692.rs:2:13
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:10:13
    |
 LL |     let _ = String.new();
    |             ^^^^^^
@@ -11,7 +11,7 @@ LL +     let _ = String::new();
    |
 
 error[E0423]: expected value, found struct `String`
-  --> $DIR/issue-22692.rs:6:13
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:14:13
    |
 LL |     let _ = String.default;
    |             ^^^^^^
@@ -23,7 +23,7 @@ LL +     let _ = String::default;
    |
 
 error[E0423]: expected value, found struct `Vec`
-  --> $DIR/issue-22692.rs:10:13
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:18:13
    |
 LL |     let _ = Vec::<()>.with_capacity(1);
    |             ^^^^^^^^^
@@ -34,8 +34,41 @@ LL -     let _ = Vec::<()>.with_capacity(1);
 LL +     let _ = Vec::<()>::with_capacity(1);
    |
 
+error[E0423]: expected value, found type alias `Alias`
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:22:13
+   |
+LL |     let _ = Alias.new();
+   |             ^^^^^
+   |
+help: use the path separator to refer to an item
+   |
+LL |     let _ = Alias::new();
+   |                  ~~
+
+error[E0423]: expected value, found type alias `Alias`
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:26:13
+   |
+LL |     let _ = Alias.default;
+   |             ^^^^^
+   |
+help: use the path separator to refer to an item
+   |
+LL |     let _ = Alias::default;
+   |                  ~~
+
+error[E0423]: expected value, found module `foo`
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:30:13
+   |
+LL |     let _ = foo.bar;
+   |             ^^^
+   |
+help: use the path separator to refer to an item
+   |
+LL |     let _ = foo::bar;
+   |                ~~
+
 error[E0423]: expected value, found struct `std::cell::Cell`
-  --> $DIR/issue-22692.rs:17:9
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:37:9
    |
 LL |         ::std::cell::Cell
    |         ^^^^^^^^^^^^^^^^^
@@ -51,7 +84,7 @@ LL +     <Type!()>::get();
    |
 
 error[E0423]: expected value, found struct `std::cell::Cell`
-  --> $DIR/issue-22692.rs:17:9
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:37:9
    |
 LL |         ::std::cell::Cell
    |         ^^^^^^^^^^^^^^^^^
@@ -67,7 +100,7 @@ LL +     <Type! {}>::get;
    |
 
 error[E0423]: expected value, found struct `Vec`
-  --> $DIR/issue-22692.rs:26:9
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:46:9
    |
 LL |         Vec.new()
    |         ^^^
@@ -83,7 +116,7 @@ LL +         Vec::new()
    |
 
 error[E0423]: expected value, found struct `Vec`
-  --> $DIR/issue-22692.rs:31:9
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:51:9
    |
 LL |         Vec.new
    |         ^^^
@@ -99,7 +132,7 @@ LL +         Vec::new
    |
 
 error[E0423]: expected value, found struct `std::cell::Cell`
-  --> $DIR/issue-22692.rs:17:9
+  --> $DIR/dot-notation-type-namespace-suggest-path-sep.rs:37:9
    |
 LL |         ::std::cell::Cell
    |         ^^^^^^^^^^^^^^^^^
@@ -114,6 +147,6 @@ LL -         Type!().new(0)
 LL +         <Type!()>::new(0)
    |
 
-error: aborting due to 8 previous errors
+error: aborting due to 11 previous errors
 
 For more information about this error, try `rustc --explain E0423`.