1 // run-pass
2 // Test of allowing two sequences repetitions in a row,
3 // functionality added as byproduct of RFC amendment #1384
4 //   https://github.com/rust-lang/rfcs/pull/1384
5 
6 // Old version of Rust would reject this macro definition, even though
7 // there are no local ambiguities (the initial `banana` and `orange`
8 // tokens are enough for the expander to distinguish which case is
9 // intended).
10 macro_rules! foo {
11     ( $(banana $a:ident)* $(orange $b:tt)* ) => { };
12 }
13 
main()14 fn main() {
15     foo!( banana id1 banana id2
16           orange hi  orange (hello world) );
17 }
18