about summary refs log tree commit diff
path: root/src/test/ui/destructuring-assignment/struct_destructure_fail.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/destructuring-assignment/struct_destructure_fail.rs')
-rw-r--r--src/test/ui/destructuring-assignment/struct_destructure_fail.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/ui/destructuring-assignment/struct_destructure_fail.rs b/src/test/ui/destructuring-assignment/struct_destructure_fail.rs
new file mode 100644
index 00000000000..c22695ed388
--- /dev/null
+++ b/src/test/ui/destructuring-assignment/struct_destructure_fail.rs
@@ -0,0 +1,15 @@
+#![feature(destructuring_assignment)]
+struct Struct<S, T> {
+    a: S,
+    b: T,
+}
+
+fn main() {
+    let (mut a, b);
+    let mut c;
+    let d = Struct { a: 0, b: 1 };
+    Struct { a, b, c } = Struct { a: 0, b: 1 }; //~ ERROR does not have a field named `c`
+    Struct { a, ..d } = Struct { a: 1, b: 2 };
+    //~^ ERROR functional record updates are not allowed in destructuring assignments
+    Struct { a, .. }; //~ ERROR base expression required after `..`
+}