about summary refs log tree commit diff
path: root/tests/ui/pattern
diff options
context:
space:
mode:
authorNadrieril <Nadrieril@users.noreply.github.com>2025-04-27 14:18:34 +0200
committerNadrieril <nadrieril+git@gmail.com>2025-04-27 17:25:15 +0200
commit4e555fa52c5e853a47c7865397a1d6787643a51c (patch)
tree951688c7c138682dd06d0489b7fafcfaec425e95 /tests/ui/pattern
parent43133184432fa3799ce504bbd34e17b120d7cd21 (diff)
downloadrust-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.rs8
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();