From bc837fdadf185a7aa593008e13364fde2b8c7fc9 Mon Sep 17 00:00:00 2001 From: John Clements Date: Tue, 24 Jun 2014 16:34:03 -0700 Subject: add unit test for match var hygiene --- src/libsyntax/ext/expand.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/libsyntax/ext') diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index bf68538d656..c2e13a53b1e 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1254,6 +1254,18 @@ mod test { 0) } + // FIXME #9384, match variable hygiene. Should expand into + // fn z() {match 8 {x_1 => {match 9 {x_2 | x_2 => x_2 + x_1}}}} + #[test] fn issue_9384(){ + run_renaming_test( + &("macro_rules! bad_macro (($ex:expr) => ({match 9 {x | x => x + $ex}})) + fn z() {match 8 {x => bad_macro!(_x)}}", + // NB: the third "binding" is the repeat of the second one. + vec!(vec!(1),vec!(0),vec!(0)), + true), + 0) + } + // create a really evil test case where a $x appears inside a binding of $x // but *shouldnt* bind because it was inserted by a different macro.... // can't write this test case until we have macro-generating macros. -- cgit 1.4.1-3-g733a5