diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-02-02 07:11:05 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-02 07:11:05 +0100 |
| commit | 8ede21b09ce7130a1453bfaa5e889fc2a7ae3ac8 (patch) | |
| tree | 8963b79051c468c4286890abd191093aa910c83c /src/test/ui | |
| parent | 7117b457deb03de3d28ffa68fe9d457fef0c5c5d (diff) | |
| parent | b26ad8d10fabe45ead09aff0e2cd5b5e1289274a (diff) | |
| download | rust-8ede21b09ce7130a1453bfaa5e889fc2a7ae3ac8.tar.gz rust-8ede21b09ce7130a1453bfaa5e889fc2a7ae3ac8.zip | |
Rollup merge of #92788 - estebank:colon-colon, r=cjgillot
Detect `::` -> `:` typo in type argument When writing `Vec<A:B>`, suggest `Vec<A::B>`.
Diffstat (limited to 'src/test/ui')
| -rw-r--r-- | src/test/ui/suggestions/type-ascription-instead-of-path-in-type.rs | 14 | ||||
| -rw-r--r-- | src/test/ui/suggestions/type-ascription-instead-of-path-in-type.stderr | 46 |
2 files changed, 60 insertions, 0 deletions
diff --git a/src/test/ui/suggestions/type-ascription-instead-of-path-in-type.rs b/src/test/ui/suggestions/type-ascription-instead-of-path-in-type.rs new file mode 100644 index 00000000000..48d19f6dd4e --- /dev/null +++ b/src/test/ui/suggestions/type-ascription-instead-of-path-in-type.rs @@ -0,0 +1,14 @@ +enum A { + B, +} + +fn main() { + let _: Vec<A:B> = A::B; + //~^ ERROR cannot find trait `B` in this scope + //~| HELP you might have meant to write a path instead of an associated type bound + //~| ERROR associated type bounds are unstable + //~| HELP add `#![feature(associated_type_bounds)]` to the crate attributes to enable + //~| ERROR struct takes at least 1 generic argument but 0 generic arguments were supplied + //~| HELP add missing generic argument + //~| ERROR associated type bindings are not allowed here +} diff --git a/src/test/ui/suggestions/type-ascription-instead-of-path-in-type.stderr b/src/test/ui/suggestions/type-ascription-instead-of-path-in-type.stderr new file mode 100644 index 00000000000..951ff23d635 --- /dev/null +++ b/src/test/ui/suggestions/type-ascription-instead-of-path-in-type.stderr @@ -0,0 +1,46 @@ +error[E0405]: cannot find trait `B` in this scope + --> $DIR/type-ascription-instead-of-path-in-type.rs:6:18 + | +LL | let _: Vec<A:B> = A::B; + | ^ not found in this scope + | +help: you might have meant to write a path instead of an associated type bound + | +LL | let _: Vec<A::B> = A::B; + | ~~ + +error[E0658]: associated type bounds are unstable + --> $DIR/type-ascription-instead-of-path-in-type.rs:6:16 + | +LL | let _: Vec<A:B> = A::B; + | ^^^ + | + = note: see issue #52662 <https://github.com/rust-lang/rust/issues/52662> for more information + = help: add `#![feature(associated_type_bounds)]` to the crate attributes to enable + +error[E0107]: this struct takes at least 1 generic argument but 0 generic arguments were supplied + --> $DIR/type-ascription-instead-of-path-in-type.rs:6:12 + | +LL | let _: Vec<A:B> = A::B; + | ^^^ expected at least 1 generic argument + | +note: struct defined here, with at least 1 generic parameter: `T` + --> $SRC_DIR/alloc/src/vec/mod.rs:LL:COL + | +LL | pub struct Vec<T, #[unstable(feature = "allocator_api", issue = "32838")] A: Allocator = Global> { + | ^^^ - +help: add missing generic argument + | +LL | let _: Vec<T, A:B> = A::B; + | ++ + +error[E0229]: associated type bindings are not allowed here + --> $DIR/type-ascription-instead-of-path-in-type.rs:6:16 + | +LL | let _: Vec<A:B> = A::B; + | ^^^ associated type not allowed here + +error: aborting due to 4 previous errors + +Some errors have detailed explanations: E0107, E0229, E0405, E0658. +For more information about an error, try `rustc --explain E0107`. |
