diff options
| author | John Clements <clements@racket-lang.org> | 2014-07-04 11:02:17 -0700 |
|---|---|---|
| committer | John Clements <clements@racket-lang.org> | 2014-07-04 13:20:14 -0700 |
| commit | ff9995e08978cec4b6987d198e09ac5ba6b6c152 (patch) | |
| tree | 7c85ca3be0777536fad043f32c66f78311b59c6e /src/libsyntax | |
| parent | 63fb7c6f4049ba33cb2fcd5d5d117a3e484bd181 (diff) | |
| download | rust-ff9995e08978cec4b6987d198e09ac5ba6b6c152.tar.gz rust-ff9995e08978cec4b6987d198e09ac5ba6b6c152.zip | |
added test cases for closure arg hygiene
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 534cddd6848..e9e722a18c4 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1387,6 +1387,28 @@ mod test { 0) } + // closure arg hygiene + // expands to fn f(){(|x_1 : int| {(x_2 + x_1)})(3);} + #[test] fn closure_arg_hygiene(){ + run_renaming_test( + &("macro_rules! inject_x (()=>(x)) + fn f(){(|x : int| {(inject_x!() + x)})(3);}", + vec!(vec!(1)), + true), + 0) + } + + // closure arg hygiene (ExprProc) + // expands to fn f(){(proc(x_1 : int) {(x_2 + x_1)})(3);} + #[test] fn closure_arg_hygiene_2(){ + run_renaming_test( + &("macro_rules! inject_x (()=>(x)) + fn f(){ (proc(x : int){(inject_x!() + x)})(3); }", + vec!(vec!(1)), + true), + 0) + } + // run one of the renaming tests fn run_renaming_test(t: &RenamingTest, test_idx: uint) { let invalid_name = token::special_idents::invalid.name; |
