about summary refs log tree commit diff
path: root/src/libsyntax_ext
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-10-08 01:42:58 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2016-10-08 01:49:11 +0200
commit0d1ab4e9e4e1a6b481a3cf32088ab7d7e7e673ef (patch)
treee8eee6e1694875bca0b7da2e111c7a455086f27d /src/libsyntax_ext
parent46957f05771a427545c792f69b37f8e05dcbb15d (diff)
downloadrust-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.rs10
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)]