diff options
| author | Nadrieril <Nadrieril@users.noreply.github.com> | 2025-04-27 14:18:34 +0200 |
|---|---|---|
| committer | Nadrieril <nadrieril+git@gmail.com> | 2025-04-27 17:25:15 +0200 |
| commit | 4e555fa52c5e853a47c7865397a1d6787643a51c (patch) | |
| tree | 951688c7c138682dd06d0489b7fafcfaec425e95 /tests/ui/pattern | |
| parent | 43133184432fa3799ce504bbd34e17b120d7cd21 (diff) | |
| download | rust-4e555fa52c5e853a47c7865397a1d6787643a51c.tar.gz rust-4e555fa52c5e853a47c7865397a1d6787643a51c.zip | |
Test partial moves via deref pats
Diffstat (limited to 'tests/ui/pattern')
| -rw-r--r-- | tests/ui/pattern/deref-patterns/deref-box.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/ui/pattern/deref-patterns/deref-box.rs b/tests/ui/pattern/deref-patterns/deref-box.rs index 3917c8971d9..2d0a8d01972 100644 --- a/tests/ui/pattern/deref-patterns/deref-box.rs +++ b/tests/ui/pattern/deref-patterns/deref-box.rs @@ -15,11 +15,19 @@ fn unbox_2<T>(b: Box<(T,)>) -> T { x } +fn unbox_separately<T>(b: Box<(T, T)>) -> (T, T) { + let (x, _) = b else { unreachable!() }; + let (_, y) = b else { unreachable!() }; + (x, y) +} + fn main() { // test that deref patterns can move out of boxes let b1 = Box::new(0); let b2 = Box::new((0,)); assert_eq!(unbox_1(b1), unbox_2(b2)); + let b3 = Box::new((1, 2)); + assert_eq!(unbox_separately(b3), (1, 2)); // test that borrowing from a box also works let mut b = "hi".to_owned().into_boxed_str(); |
