From f16e575bae848ef0046c00e4b9a5cc21771cf337 Mon Sep 17 00:00:00 2001 From: Haibo Huang Date: Tue, 15 Sep 2020 11:55:13 -0700 Subject: Upgrade rust/crates/paste to 1.0.1 Test: make Change-Id: I630a5d0bb2d7dfa2bf21d03a74bc2ab52f47e8bd --- tests/test_expr.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'tests') diff --git a/tests/test_expr.rs b/tests/test_expr.rs index 8186a37..8c0cc28 100644 --- a/tests/test_expr.rs +++ b/tests/test_expr.rs @@ -199,3 +199,39 @@ mod test_x86_feature_literal { my_is_x86_feature_detected!("mmx"); } + +#[rustversion::since(1.46)] +mod test_local_setter { + // https://github.com/dtolnay/paste/issues/7 + + use paste::paste; + + #[derive(Default)] + struct Test { + val: i32, + } + + impl Test { + fn set_val(&mut self, arg: i32) { + self.val = arg; + } + } + + macro_rules! setter { + ($obj:expr, $field:ident, $value:expr) => { + paste! { $obj.[]($value); } + }; + + ($field:ident, $value:expr) => {{ + let mut new = Test::default(); + setter!(new, val, $value); + new + }}; + } + + #[test] + fn test_local_setter() { + let a = setter!(val, 42); + assert_eq!(a.val, 42); + } +} -- cgit v1.2.3