summaryrefslogtreecommitdiffstats
path: root/tests/ui/did_you_mean/bad-assoc-ty.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/did_you_mean/bad-assoc-ty.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/did_you_mean/bad-assoc-ty.rs')
-rw-r--r--tests/ui/did_you_mean/bad-assoc-ty.rs85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/ui/did_you_mean/bad-assoc-ty.rs b/tests/ui/did_you_mean/bad-assoc-ty.rs
new file mode 100644
index 000000000..f787c416c
--- /dev/null
+++ b/tests/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() {}