use cps::cps; #[cps] macro_rules! macro1 { () => { "Empty Call" }; (a) => { 1 }; (12.5) => { 2 }; (TestParens) => { ( 5 + 10) }; (@ident $i:ident) => { $i }; } #[test] fn empty_preserved() { assert_eq!(macro1!(), "Empty Call"); } #[test] fn ident_preserved() { assert_eq!(macro1!(a), 1); } #[test] fn literal_preserved() { assert_eq!(macro1!(12.5), 2); } #[test] fn parens_returned() { assert_eq!(macro1!(TestParens) * 2, 30); } #[test] fn ident_returned() { let my_var = -17; assert_eq!(macro1!(@ident my_var), my_var); }