about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-06-12 20:23:29 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-06-16 03:55:57 +0000
commit58372af058c7e4f60dbc6bf9157338ea545e9753 (patch)
tree477c1f55f5bc5c43f3321ceae2cdc7ac4e30bef0
parentac1a1d32f60c9bff72bf77d5d94ad8ce36106e00 (diff)
downloadrust-58372af058c7e4f60dbc6bf9157338ea545e9753.tar.gz
rust-58372af058c7e4f60dbc6bf9157338ea545e9753.zip
Add test for `MultiItemModifier`s that add items
-rw-r--r--src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs17
-rw-r--r--src/test/run-pass-fulldeps/macro-crate.rs2
2 files changed, 11 insertions, 8 deletions
diff --git a/src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs b/src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs
index 3516f566e8a..a22c3ba4849 100644
--- a/src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs
+++ b/src/test/run-pass-fulldeps/auxiliary/macro_crate_test.rs
@@ -62,15 +62,16 @@ fn expand_identity(cx: &mut ExtCtxt, _span: Span, tts: &[TokenTree])
 fn expand_into_foo_multi(cx: &mut ExtCtxt,
                          sp: Span,
                          attr: &MetaItem,
-                         it: Annotatable) -> Annotatable {
+                         it: Annotatable) -> Vec<Annotatable> {
     match it {
-        Annotatable::Item(it) => {
+        Annotatable::Item(it) => vec![
             Annotatable::Item(P(Item {
                 attrs: it.attrs.clone(),
                 ..(*quote_item!(cx, enum Foo2 { Bar2, Baz2 }).unwrap()).clone()
-            }))
-        }
-        Annotatable::ImplItem(it) => {
+            })),
+            Annotatable::Item(quote_item!(cx, enum Foo3 { Bar }).unwrap()),
+        ],
+        Annotatable::ImplItem(it) => vec![
             quote_item!(cx, impl X { fn foo(&self) -> i32 { 42 } }).unwrap().and_then(|i| {
                 match i.node {
                     ItemKind::Impl(_, _, _, _, _, mut items) => {
@@ -79,8 +80,8 @@ fn expand_into_foo_multi(cx: &mut ExtCtxt,
                     _ => unreachable!("impl parsed to something other than impl")
                 }
             })
-        }
-        Annotatable::TraitItem(it) => {
+        ],
+        Annotatable::TraitItem(it) => vec![
             quote_item!(cx, trait X { fn foo(&self) -> i32 { 0 } }).unwrap().and_then(|i| {
                 match i.node {
                     ItemKind::Trait(_, _, _, mut items) => {
@@ -89,7 +90,7 @@ fn expand_into_foo_multi(cx: &mut ExtCtxt,
                     _ => unreachable!("trait parsed to something other than trait")
                 }
             })
-        }
+        ],
     }
 }
 
diff --git a/src/test/run-pass-fulldeps/macro-crate.rs b/src/test/run-pass-fulldeps/macro-crate.rs
index 3a381963669..d17adff007c 100644
--- a/src/test/run-pass-fulldeps/macro-crate.rs
+++ b/src/test/run-pass-fulldeps/macro-crate.rs
@@ -40,6 +40,8 @@ pub fn main() {
     assert_eq!(Foo2::Bar2, Foo2::Bar2);
     test(None::<Foo2>);
 
+    let _ = Foo3::Bar;
+
     let x = 10i32;
     assert_eq!(x.foo(), 42);
     let x = 10u8;