From 698f8c2f01ea549d77d7dc3338a12e04c11057b9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:02:58 +0200 Subject: Adding upstream version 1.64.0+dfsg1. Signed-off-by: Daniel Baumann --- src/test/ui/on-unimplemented/bad-annotation.rs | 64 ++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/test/ui/on-unimplemented/bad-annotation.rs (limited to 'src/test/ui/on-unimplemented/bad-annotation.rs') diff --git a/src/test/ui/on-unimplemented/bad-annotation.rs b/src/test/ui/on-unimplemented/bad-annotation.rs new file mode 100644 index 000000000..f05436b8c --- /dev/null +++ b/src/test/ui/on-unimplemented/bad-annotation.rs @@ -0,0 +1,64 @@ +// ignore-tidy-linelength + +#![feature(rustc_attrs)] + +#![allow(unused)] + +#[rustc_on_unimplemented = "test error `{Self}` with `{Bar}` `{Baz}` `{Quux}`"] +trait Foo +{} + +#[rustc_on_unimplemented="a collection of type `{Self}` cannot be built from an iterator over elements of type `{A}`"] +trait MyFromIterator { + /// Builds a container with elements from an external iterator. + fn my_from_iter>(iterator: T) -> Self; +} + +#[rustc_on_unimplemented] +//~^ ERROR malformed `rustc_on_unimplemented` attribute +trait BadAnnotation1 +{} + +#[rustc_on_unimplemented = "Unimplemented trait error on `{Self}` with params `<{A},{B},{C}>`"] +//~^ ERROR there is no parameter `C` on trait `BadAnnotation2` +trait BadAnnotation2 +{} + +#[rustc_on_unimplemented = "Unimplemented trait error on `{Self}` with params `<{A},{B},{}>`"] +//~^ only named substitution parameters are allowed +trait BadAnnotation3 +{} + +#[rustc_on_unimplemented(lorem="")] +//~^ this attribute must have a valid +trait BadAnnotation4 {} + +#[rustc_on_unimplemented(lorem(ipsum(dolor)))] +//~^ this attribute must have a valid +trait BadAnnotation5 {} + +#[rustc_on_unimplemented(message="x", message="y")] +//~^ this attribute must have a valid +trait BadAnnotation6 {} + +#[rustc_on_unimplemented(message="x", on(desugared, message="y"))] +//~^ this attribute must have a valid +trait BadAnnotation7 {} + +#[rustc_on_unimplemented(on(), message="y")] +//~^ empty `on`-clause +trait BadAnnotation8 {} + +#[rustc_on_unimplemented(on="x", message="y")] +//~^ this attribute must have a valid +trait BadAnnotation9 {} + +#[rustc_on_unimplemented(on(x="y"), message="y")] +trait BadAnnotation10 {} + +#[rustc_on_unimplemented(on(desugared, on(desugared, message="x")), message="y")] +//~^ this attribute must have a valid +trait BadAnnotation11 {} + +pub fn main() { +} -- cgit v1.2.3