diff options
| author | Zachary S <zasample18+github@gmail.com> | 2025-01-30 16:28:00 -0600 |
|---|---|---|
| committer | Zachary S <zasample18+github@gmail.com> | 2025-02-18 13:11:37 -0600 |
| commit | fe37adab4b378d68eda8a8893339606d7f381465 (patch) | |
| tree | 9eb168ce9e4cb70f05d0978e96d5abb2c88b0ec9 /tests/ui | |
| parent | 3b022d8ceea570db9730be34d964f0cc663a567f (diff) | |
| download | rust-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`. |
