Skip to content

Commit bc837fd

Browse files
committed
add unit test for match var hygiene
1 parent 19e1d83 commit bc837fd

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/libsyntax/ext/expand.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,6 +1254,18 @@ mod test {
12541254
0)
12551255
}
12561256

1257+
// FIXME #9384, match variable hygiene. Should expand into
1258+
// fn z() {match 8 {x_1 => {match 9 {x_2 | x_2 => x_2 + x_1}}}}
1259+
#[test] fn issue_9384(){
1260+
run_renaming_test(
1261+
&("macro_rules! bad_macro (($ex:expr) => ({match 9 {x | x => x + $ex}}))
1262+
fn z() {match 8 {x => bad_macro!(_x)}}",
1263+
// NB: the third "binding" is the repeat of the second one.
1264+
vec!(vec!(1),vec!(0),vec!(0)),
1265+
true),
1266+
0)
1267+
}
1268+
12571269
// create a really evil test case where a $x appears inside a binding of $x
12581270
// but *shouldnt* bind because it was inserted by a different macro....
12591271
// can't write this test case until we have macro-generating macros.

0 commit comments

Comments
 (0)