From f6a8ffc625aec7865280e3dfc2d3bd822f072142 Mon Sep 17 00:00:00 2001 From: Paul Stansifer Date: Thu, 22 Nov 2012 10:29:56 -0500 Subject: [PATCH] Test statement macros. --- src/test/run-pass/macro-stmt.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/run-pass/macro-stmt.rs diff --git a/src/test/run-pass/macro-stmt.rs b/src/test/run-pass/macro-stmt.rs new file mode 100644 index 000000000000..e0b88d1c892b --- /dev/null +++ b/src/test/run-pass/macro-stmt.rs @@ -0,0 +1,32 @@ +// xfail-pretty - token trees can't pretty print + +macro_rules! myfn( + ( $f:ident, ( $( $x:ident ),* ), $body:block ) => ( + fn $f( $( $x : int),* ) -> int $body + ) +) + +myfn!(add, (a,b), { return a+b; } ) + +fn main() { + + macro_rules! mylet( + ($x:ident, $val:expr) => ( + let $x = $val; + ) + ); + + mylet!(y, 8*2); + assert(y == 16); + + myfn!(mult, (a,b), { a*b } ); + + assert (mult(2, add(4,4)) == 16); + + macro_rules! actually_an_expr_macro ( + () => ( 16 ) + ) + + assert { actually_an_expr_macro!() } == 16; + +}