diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /src/test/ui/did_you_mean/bad-assoc-ty.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/did_you_mean/bad-assoc-ty.rs')
-rw-r--r-- | src/test/ui/did_you_mean/bad-assoc-ty.rs | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/test/ui/did_you_mean/bad-assoc-ty.rs b/src/test/ui/did_you_mean/bad-assoc-ty.rs new file mode 100644 index 000000000..f787c416c --- /dev/null +++ b/src/test/ui/did_you_mean/bad-assoc-ty.rs @@ -0,0 +1,85 @@ +type A = [u8; 4]::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR ambiguous associated type + +type B = [u8]::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR ambiguous associated type + +type C = (u8)::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR ambiguous associated type + +type D = (u8, u8)::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR ambiguous associated type + +type E = _::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR the placeholder `_` is not allowed within types on item signatures for type aliases + +type F = &'static (u8)::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR ambiguous associated type + +// Qualified paths cannot appear in bounds, so the recovery +// should apply to the whole sum and not `(Send)`. +type G = dyn 'static + (Send)::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR ambiguous associated type + +// This is actually a legal path with fn-like generic arguments in the middle! +// Recovery should not apply in this context. +type H = Fn(u8) -> (u8)::Output; +//~^ ERROR ambiguous associated type +//~| WARN trait objects without an explicit `dyn` are deprecated +//~| WARN this is accepted in the current edition + +macro_rules! ty { + ($ty: ty) => ($ty::AssocTy); + //~^ ERROR missing angle brackets in associated item path + //~| ERROR ambiguous associated type + () => (u8); +} + +type J = ty!(u8); +type I = ty!()::AssocTy; +//~^ ERROR missing angle brackets in associated item path +//~| ERROR ambiguous associated type + +trait K<A, B> {} +fn foo<X: K<_, _>>(x: X) {} +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for functions + +fn bar<F>(_: F) where F: Fn() -> _ {} +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for functions + +fn baz<F: Fn() -> _>(_: F) {} +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for functions + +struct L<F>(F) where F: Fn() -> _; +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for structs +struct M<F> where F: Fn() -> _ { +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for structs + a: F, +} +enum N<F> where F: Fn() -> _ { +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for enums + Foo(F), +} + +union O<F> where F: Fn() -> _ { +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for unions + foo: F, +} + +trait P<F> where F: Fn() -> _ { +//~^ ERROR the placeholder `_` is not allowed within types on item signatures for traits +} + +trait Q { + fn foo<F>(_: F) where F: Fn() -> _ {} + //~^ ERROR the placeholder `_` is not allowed within types on item signatures for functions +} + +fn main() {} |