diff options
Diffstat (limited to 'tests/ui/destructuring-assignment/struct_destructure_fail.rs')
-rw-r--r-- | tests/ui/destructuring-assignment/struct_destructure_fail.rs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/ui/destructuring-assignment/struct_destructure_fail.rs b/tests/ui/destructuring-assignment/struct_destructure_fail.rs new file mode 100644 index 000000000..c001fccd4 --- /dev/null +++ b/tests/ui/destructuring-assignment/struct_destructure_fail.rs @@ -0,0 +1,16 @@ +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, _ } = Struct { a: 1, b: 2 }; //~ ERROR pattern does not mention field `b` + //~| ERROR expected identifier, found reserved identifier `_` + 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 `..` +} |