diff options
author | Haibo Huang <hhb@google.com> | 2020-09-15 11:55:13 -0700 |
---|---|---|
committer | Haibo Huang <hhb@google.com> | 2020-09-15 11:55:13 -0700 |
commit | f16e575bae848ef0046c00e4b9a5cc21771cf337 (patch) | |
tree | d0ffc3e4bbc5b66ebb1b1a89bc43944f49dc7439 /tests | |
parent | 8fcb2ec44fef7089468d8199c529b6c2655b3de6 (diff) | |
download | paste-f16e575bae848ef0046c00e4b9a5cc21771cf337.tar.gz |
Upgrade rust/crates/paste to 1.0.1
Test: make
Change-Id: I630a5d0bb2d7dfa2bf21d03a74bc2ab52f47e8bd
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_expr.rs | 36 |
1 files changed, 36 insertions, 0 deletions
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.[<set_ $field>]($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); + } +} |