diff options
| author | Nadrieril <nadrieril+git@gmail.com> | 2024-04-08 20:05:23 +0200 |
|---|---|---|
| committer | Nadrieril <nadrieril+git@gmail.com> | 2024-04-20 16:04:06 +0200 |
| commit | 217a4dff7da0e4be2c22fd8f822cb543745c6727 (patch) | |
| tree | 1514cb76d9a3d94e8bc66ed0e834e84c962a74da | |
| parent | 436c61266c7e9c4d6b7a57a8a6170700eda68fd0 (diff) | |
| download | rust-217a4dff7da0e4be2c22fd8f822cb543745c6727.tar.gz rust-217a4dff7da0e4be2c22fd8f822cb543745c6727.zip | |
Test or-patterns inside deref patterns
| -rw-r--r-- | tests/ui/pattern/deref-patterns/bindings.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/ui/pattern/deref-patterns/bindings.rs b/tests/ui/pattern/deref-patterns/bindings.rs index 4f72058af8f..5881e4166a4 100644 --- a/tests/ui/pattern/deref-patterns/bindings.rs +++ b/tests/ui/pattern/deref-patterns/bindings.rs @@ -37,6 +37,17 @@ fn ref_mut(val: u32) -> u32 { *x } +#[rustfmt::skip] +fn or_and_guard(tuple: (u32, u32)) -> u32 { + let mut sum = 0; + let b = Box::new(tuple); + match b { + deref!((x, _) | (_, x)) if { sum += x; false } => {}, + _ => {}, + } + sum +} + fn main() { assert_eq!(simple_vec(vec![1]), 1); assert_eq!(simple_vec(vec![1, 2]), 202); @@ -48,5 +59,6 @@ fn main() { assert_eq!(nested_vec(vec![vec![1, 2, 3]]), 6); assert_eq!(nested_vec(vec![vec![], vec![1, 2, 3]]), 1); - assert_eq!(ref_mut(42), 42) + assert_eq!(ref_mut(42), 42); + assert_eq!(or_and_guard((10, 32)), 42); } |
