about summary refs log tree commit diff
path: root/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern-pass.rs
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-01-19 02:47:01 +0100
committerMazdak Farrokhzad <twingoow@gmail.com>2020-02-02 14:13:07 +0100
commitd984f127f662f7a1fcf0472230a1b64fcc3325d5 (patch)
tree35a1694fb4c49d0c43a8da13f74c9ed94eeab7d2 /src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern-pass.rs
parent7af9ff3e699207da7a5220b98ba9831d66697c80 (diff)
downloadrust-d984f127f662f7a1fcf0472230a1b64fcc3325d5.tar.gz
rust-d984f127f662f7a1fcf0472230a1b64fcc3325d5.zip
move_ref_patterns: introduce tests
bindings_after_at: harden tests
Diffstat (limited to 'src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern-pass.rs')
-rw-r--r--src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern-pass.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern-pass.rs b/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern-pass.rs
new file mode 100644
index 00000000000..d2d4e61e049
--- /dev/null
+++ b/src/test/ui/pattern/move-ref-patterns/borrowck-move-ref-pattern-pass.rs
@@ -0,0 +1,31 @@
+// check-pass
+
+#![feature(move_ref_pattern)]
+
+fn main() {}
+
+struct U;
+
+fn slice() {
+    let mut arr = [U, U, U, U, U, U, U, U];
+    let [ref _x0, _x1, _, mut _x3, .., ref _x6, _x7] = arr;
+    _x3 = U;
+    let [ref mut _x0, _, ref _x2, _, _x4, ref mut _x5, _x6, _] = arr;
+    *_x5 = U;
+    let [_, _, _x2, _, _, _x5, _, _] = arr;
+    *_x0 = U;
+    let [ref _x0, ..] = arr;
+    let [_x0, ..] = arr;
+}
+
+fn tuple() {
+    let mut tup = (U, U, U, U, U);
+    let (ref _x0, mut _x1, ref _x2, ..) = tup;
+    _x1 = U;
+    let (ref mut _x0, _, _, ref _x3, _x4) = tup;
+    let (_, _, _, _x3, _) = tup;
+    *_x0 = U;
+    drop(_x2);
+    drop(tup.2);
+    let (_x0, _, _, ..) = tup;
+}