diff --git a/src/libsyntax/ext/derive.rs b/src/libsyntax/ext/derive.rs index abc451c96ae0e..3b4243ed24f7c 100644 --- a/src/libsyntax/ext/derive.rs +++ b/src/libsyntax/ext/derive.rs @@ -30,10 +30,6 @@ pub fn collect_derives(cx: &mut ExtCtxt<'_>, attrs: &mut Vec) -> match attr.parse_list(cx.parse_sess, |parser| parser.parse_path_allowing_meta(PathStyle::Mod)) { - Ok(ref traits) if traits.is_empty() => { - cx.span_warn(attr.span, "empty trait list in `derive`"); - false - } Ok(traits) => { result.extend(traits); true diff --git a/src/test/ui/derives/deriving-meta-empty-trait-list.rs b/src/test/ui/derives/deriving-meta-empty-trait-list.rs index 882484146152d..4f2e31e8efb15 100644 --- a/src/test/ui/derives/deriving-meta-empty-trait-list.rs +++ b/src/test/ui/derives/deriving-meta-empty-trait-list.rs @@ -1,6 +1,6 @@ -// compile-pass +#![deny(unused)] -#[derive()] //~ WARNING empty trait list in `derive` -struct Bar; +#[derive()] //~ ERROR unused attribute +struct _Bar; pub fn main() {} diff --git a/src/test/ui/derives/deriving-meta-empty-trait-list.stderr b/src/test/ui/derives/deriving-meta-empty-trait-list.stderr index f8414b6e65e62..95c94ded3eaf1 100644 --- a/src/test/ui/derives/deriving-meta-empty-trait-list.stderr +++ b/src/test/ui/derives/deriving-meta-empty-trait-list.stderr @@ -1,6 +1,15 @@ -warning: empty trait list in `derive` +error: unused attribute --> $DIR/deriving-meta-empty-trait-list.rs:3:1 | LL | #[derive()] | ^^^^^^^^^^^ + | +note: lint level defined here + --> $DIR/deriving-meta-empty-trait-list.rs:1:9 + | +LL | #![deny(unused)] + | ^^^^^^ + = note: #[deny(unused_attributes)] implied by #[deny(unused)] + +error: aborting due to previous error diff --git a/src/test/ui/malformed/malformed-derive-entry.rs b/src/test/ui/malformed/malformed-derive-entry.rs index 3e53e15601b0b..a6d886318e820 100644 --- a/src/test/ui/malformed/malformed-derive-entry.rs +++ b/src/test/ui/malformed/malformed-derive-entry.rs @@ -4,9 +4,6 @@ struct Test1; #[derive(Copy="bad")] //~ ERROR expected one of `)`, `,`, or `::`, found `=` struct Test2; -#[derive()] //~ WARNING empty trait list -struct Test3; - #[derive] //~ ERROR malformed `derive` attribute input struct Test4; diff --git a/src/test/ui/malformed/malformed-derive-entry.stderr b/src/test/ui/malformed/malformed-derive-entry.stderr index dfbc5faedac59..f7500febe9719 100644 --- a/src/test/ui/malformed/malformed-derive-entry.stderr +++ b/src/test/ui/malformed/malformed-derive-entry.stderr @@ -10,14 +10,8 @@ error: expected one of `)`, `,`, or `::`, found `=` LL | #[derive(Copy="bad")] | ^ expected one of `)`, `,`, or `::` here -warning: empty trait list in `derive` - --> $DIR/malformed-derive-entry.rs:7:1 - | -LL | #[derive()] - | ^^^^^^^^^^^ - error: malformed `derive` attribute input - --> $DIR/malformed-derive-entry.rs:10:1 + --> $DIR/malformed-derive-entry.rs:7:1 | LL | #[derive] | ^^^^^^^^^ help: missing traits to be derived: `#[derive(Trait1, Trait2, ...)]`