diff options
| author | Anthony Ramine <n.oxyde@gmail.com> | 2016-10-08 01:42:58 +0200 |
|---|---|---|
| committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-10-08 01:49:11 +0200 |
| commit | 0d1ab4e9e4e1a6b481a3cf32088ab7d7e7e673ef (patch) | |
| tree | e8eee6e1694875bca0b7da2e111c7a455086f27d /src/libsyntax_ext | |
| parent | 46957f05771a427545c792f69b37f8e05dcbb15d (diff) | |
| download | rust-0d1ab4e9e4e1a6b481a3cf32088ab7d7e7e673ef.tar.gz rust-0d1ab4e9e4e1a6b481a3cf32088ab7d7e7e673ef.zip | |
Do not add an empty #[derive()] list in expand_derive (fixes #37033)
Diffstat (limited to 'src/libsyntax_ext')
| -rw-r--r-- | src/libsyntax_ext/deriving/mod.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libsyntax_ext/deriving/mod.rs b/src/libsyntax_ext/deriving/mod.rs index 111596cfe88..fdb10a2beb2 100644 --- a/src/libsyntax_ext/deriving/mod.rs +++ b/src/libsyntax_ext/deriving/mod.rs @@ -154,11 +154,13 @@ pub fn expand_derive(cx: &mut ExtCtxt, }); if new_attributes.len() > 0 { item = item.map(|mut i| { - let list = cx.meta_list(mitem.span, - intern_and_get_ident("derive"), - traits); i.attrs.extend(new_attributes); - i.attrs.push(cx.attribute(mitem.span, list)); + if traits.len() > 0 { + let list = cx.meta_list(mitem.span, + intern_and_get_ident("derive"), + traits); + i.attrs.push(cx.attribute(mitem.span, list)); + } i }); return vec![Annotatable::Item(item)] |
