diff options
Diffstat (limited to 'tests/test_expr.rs')
-rw-r--r-- | tests/test_expr.rs | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/tests/test_expr.rs b/tests/test_expr.rs index a61bd03..41d84ce 100644 --- a/tests/test_expr.rs +++ b/tests/test_expr.rs @@ -26,11 +26,34 @@ fn test_repeat() { } #[test] -fn test_integer() { +fn test_literal_to_identifier() { const CONST0: &str = "const0"; let pasted = paste!([<CONST 0>]); assert_eq!(pasted, CONST0); + + let pasted = paste!([<CONST '0'>]); + assert_eq!(pasted, CONST0); + + let pasted = paste!([<CONST "0">]); + assert_eq!(pasted, CONST0); + + let pasted = paste!([<CONST r"0">]); + assert_eq!(pasted, CONST0); + + let pasted = paste!([<CONST '\u{30}'>]); + assert_eq!(pasted, CONST0); +} + +#[test] +fn test_literal_suffix() { + macro_rules! literal { + ($bit:tt) => { + paste!([<1_u $bit>]) + }; + } + + assert_eq!(literal!(32), 1); } #[test] @@ -235,3 +258,26 @@ mod test_local_setter { assert_eq!(a.val, 42); } } + +// https://github.com/dtolnay/paste/issues/85 +#[test] +fn test_top_level_none_delimiter() { + macro_rules! clone { + ($val:expr) => { + paste! { + $val.clone() + } + }; + } + + #[derive(Clone)] + struct A; + + impl A { + fn consume_self(self) { + let _ = self; + } + } + + clone!(&A).consume_self(); +} |