Skip to content

Commit e994d35

Browse files
committed
Lint empty 'derive()' as unused attribute.
1 parent 305930c commit e994d35

File tree

5 files changed

+14
-18
lines changed

5 files changed

+14
-18
lines changed

src/libsyntax/ext/derive.rs

-4
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ pub fn collect_derives(cx: &mut ExtCtxt<'_>, attrs: &mut Vec<ast::Attribute>) ->
3030

3131
match attr.parse_list(cx.parse_sess,
3232
|parser| parser.parse_path_allowing_meta(PathStyle::Mod)) {
33-
Ok(ref traits) if traits.is_empty() => {
34-
cx.span_warn(attr.span, "empty trait list in `derive`");
35-
false
36-
}
3733
Ok(traits) => {
3834
result.extend(traits);
3935
true
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// compile-pass
1+
#![deny(unused)]
22

3-
#[derive()] //~ WARNING empty trait list in `derive`
4-
struct Bar;
3+
#[derive()] //~ ERROR unused attribute
4+
struct _Bar;
55

66
pub fn main() {}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1-
warning: empty trait list in `derive`
1+
error: unused attribute
22
--> $DIR/deriving-meta-empty-trait-list.rs:3:1
33
|
44
LL | #[derive()]
55
| ^^^^^^^^^^^
6+
|
7+
note: lint level defined here
8+
--> $DIR/deriving-meta-empty-trait-list.rs:1:9
9+
|
10+
LL | #![deny(unused)]
11+
| ^^^^^^
12+
= note: #[deny(unused_attributes)] implied by #[deny(unused)]
13+
14+
error: aborting due to previous error
615

src/test/ui/malformed/malformed-derive-entry.rs

-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ struct Test1;
44
#[derive(Copy="bad")] //~ ERROR expected one of `)`, `,`, or `::`, found `=`
55
struct Test2;
66

7-
#[derive()] //~ WARNING empty trait list
8-
struct Test3;
9-
107
#[derive] //~ ERROR malformed `derive` attribute input
118
struct Test4;
129

src/test/ui/malformed/malformed-derive-entry.stderr

+1-7
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,8 @@ error: expected one of `)`, `,`, or `::`, found `=`
1010
LL | #[derive(Copy="bad")]
1111
| ^ expected one of `)`, `,`, or `::` here
1212

13-
warning: empty trait list in `derive`
14-
--> $DIR/malformed-derive-entry.rs:7:1
15-
|
16-
LL | #[derive()]
17-
| ^^^^^^^^^^^
18-
1913
error: malformed `derive` attribute input
20-
--> $DIR/malformed-derive-entry.rs:10:1
14+
--> $DIR/malformed-derive-entry.rs:7:1
2115
|
2216
LL | #[derive]
2317
| ^^^^^^^^^ help: missing traits to be derived: `#[derive(Trait1, Trait2, ...)]`

0 commit comments

Comments
 (0)