diff options
| author | bors <bors@rust-lang.org> | 2022-02-01 00:50:28 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-02-01 00:50:28 +0000 |
| commit | a6cd4aa9a784e3d2e54bca2a1b41082fda67310d (patch) | |
| tree | c423461f7720efc62cfe443a9adc0e7ac5d487cd /src/test/ui | |
| parent | 745e9264873ab001a189f739446c86c509e6dc3d (diff) | |
| parent | 4ca56d28884678d89c753c03de9f0c7544d018e6 (diff) | |
| download | rust-a6cd4aa9a784e3d2e54bca2a1b41082fda67310d.tar.gz rust-a6cd4aa9a784e3d2e54bca2a1b41082fda67310d.zip | |
Auto merge of #93386 - WaffleLapkin:rustc_must_implement_one_of_check_target, r=nagisa
Check that `#[rustc_must_implement_one_of]` is applied to a trait `#[rustc_must_implement_one_of]` only makes sense when applied to a trait, so it's sensible to emit an error otherwise.
Diffstat (limited to 'src/test/ui')
| -rw-r--r-- | src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.stderr | 20 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.rs b/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.rs index 1089e5f9c4a..d9de6d5edb9 100644 --- a/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.rs +++ b/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.rs @@ -35,4 +35,12 @@ trait Tr5 { fn b(); //~ This function doesn't have a default implementation } +#[rustc_must_implement_one_of(abc, xyz)] +//~^ attribute can only be applied to a trait +fn function() {} + +#[rustc_must_implement_one_of(abc, xyz)] +//~^ attribute can only be applied to a trait +struct Struct {} + fn main() {} diff --git a/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.stderr b/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.stderr index 74a6dc8fec9..bc28dc2c4f4 100644 --- a/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.stderr +++ b/src/test/ui/traits/default-method/rustc_must_implement_one_of_misuse.stderr @@ -4,6 +4,24 @@ error: malformed `rustc_must_implement_one_of` attribute input LL | #[rustc_must_implement_one_of] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: must be of the form: `#[rustc_must_implement_one_of(function1, function2, ...)]` +error: attribute can only be applied to a trait + --> $DIR/rustc_must_implement_one_of_misuse.rs:38:1 + | +LL | #[rustc_must_implement_one_of(abc, xyz)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | +LL | fn function() {} + | ---------------- not a trait + +error: attribute can only be applied to a trait + --> $DIR/rustc_must_implement_one_of_misuse.rs:42:1 + | +LL | #[rustc_must_implement_one_of(abc, xyz)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | +LL | struct Struct {} + | ---------------- not a trait + error: Function not found in this trait --> $DIR/rustc_must_implement_one_of_misuse.rs:3:31 | @@ -78,5 +96,5 @@ note: required by this annotation LL | #[rustc_must_implement_one_of(a, b)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: aborting due to 9 previous errors +error: aborting due to 11 previous errors |
