summaryrefslogtreecommitdiffstats
path: root/tests/ui/destructuring-assignment/tuple_struct_destructure_fail.stderr
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/destructuring-assignment/tuple_struct_destructure_fail.stderr
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/destructuring-assignment/tuple_struct_destructure_fail.stderr')
-rw-r--r--tests/ui/destructuring-assignment/tuple_struct_destructure_fail.stderr98
1 files changed, 98 insertions, 0 deletions
diff --git a/tests/ui/destructuring-assignment/tuple_struct_destructure_fail.stderr b/tests/ui/destructuring-assignment/tuple_struct_destructure_fail.stderr
new file mode 100644
index 000000000..5cc7acba3
--- /dev/null
+++ b/tests/ui/destructuring-assignment/tuple_struct_destructure_fail.stderr
@@ -0,0 +1,98 @@
+error: `..` can only be used once per tuple struct or variant pattern
+ --> $DIR/tuple_struct_destructure_fail.rs:23:27
+ |
+LL | TupleStruct(a, .., b, ..) = TupleStruct(0, 1);
+ | -- ^^ can only be used once per tuple struct or variant pattern
+ | |
+ | previously used here
+
+error: `..` can only be used once per tuple struct or variant pattern
+ --> $DIR/tuple_struct_destructure_fail.rs:25:35
+ |
+LL | Enum::SingleVariant(a, .., b, ..) = Enum::SingleVariant(0, 1);
+ | -- ^^ can only be used once per tuple struct or variant pattern
+ | |
+ | previously used here
+
+error[E0023]: this pattern has 3 fields, but the corresponding tuple struct has 2 fields
+ --> $DIR/tuple_struct_destructure_fail.rs:28:17
+ |
+LL | struct TupleStruct<S, T>(S, T);
+ | - - tuple struct has 2 fields
+...
+LL | TupleStruct(a, a, b) = TupleStruct(1, 2);
+ | ^ ^ ^ expected 2 fields, found 3
+
+error[E0023]: this pattern has 1 field, but the corresponding tuple struct has 2 fields
+ --> $DIR/tuple_struct_destructure_fail.rs:30:17
+ |
+LL | struct TupleStruct<S, T>(S, T);
+ | - - tuple struct has 2 fields
+...
+LL | TupleStruct(_) = TupleStruct(1, 2);
+ | ^ expected 2 fields, found 1
+ |
+help: use `_` to explicitly ignore each field
+ |
+LL | TupleStruct(_, _) = TupleStruct(1, 2);
+ | +++
+help: use `..` to ignore all fields
+ |
+LL | TupleStruct(..) = TupleStruct(1, 2);
+ | ~~
+
+error[E0023]: this pattern has 3 fields, but the corresponding tuple variant has 2 fields
+ --> $DIR/tuple_struct_destructure_fail.rs:32:25
+ |
+LL | SingleVariant(S, T)
+ | - - tuple variant has 2 fields
+...
+LL | Enum::SingleVariant(a, a, b) = Enum::SingleVariant(1, 2);
+ | ^ ^ ^ expected 2 fields, found 3
+
+error[E0023]: this pattern has 1 field, but the corresponding tuple variant has 2 fields
+ --> $DIR/tuple_struct_destructure_fail.rs:34:25
+ |
+LL | SingleVariant(S, T)
+ | - - tuple variant has 2 fields
+...
+LL | Enum::SingleVariant(_) = Enum::SingleVariant(1, 2);
+ | ^ expected 2 fields, found 1
+ |
+help: use `_` to explicitly ignore each field
+ |
+LL | Enum::SingleVariant(_, _) = Enum::SingleVariant(1, 2);
+ | +++
+help: use `..` to ignore all fields
+ |
+LL | Enum::SingleVariant(..) = Enum::SingleVariant(1, 2);
+ | ~~
+
+error[E0070]: invalid left-hand side of assignment
+ --> $DIR/tuple_struct_destructure_fail.rs:38:12
+ |
+LL | test() = TupleStruct(0, 0);
+ | ------ ^
+ | |
+ | cannot assign to this expression
+
+error[E0070]: invalid left-hand side of assignment
+ --> $DIR/tuple_struct_destructure_fail.rs:40:14
+ |
+LL | (test)() = TupleStruct(0, 0);
+ | -------- ^
+ | |
+ | cannot assign to this expression
+
+error[E0070]: invalid left-hand side of assignment
+ --> $DIR/tuple_struct_destructure_fail.rs:42:38
+ |
+LL | <Alias::<isize> as Test>::test() = TupleStruct(0, 0);
+ | -------------------------------- ^
+ | |
+ | cannot assign to this expression
+
+error: aborting due to 9 previous errors
+
+Some errors have detailed explanations: E0023, E0070.
+For more information about an error, try `rustc --explain E0023`.