summaryrefslogtreecommitdiff
path: root/tests/ui/closures/2229_closure_analysis/bad-pattern.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/closures/2229_closure_analysis/bad-pattern.stderr')
-rw-r--r--tests/ui/closures/2229_closure_analysis/bad-pattern.stderr113
1 files changed, 113 insertions, 0 deletions
diff --git a/tests/ui/closures/2229_closure_analysis/bad-pattern.stderr b/tests/ui/closures/2229_closure_analysis/bad-pattern.stderr
new file mode 100644
index 00000000000..ca8c2a16d32
--- /dev/null
+++ b/tests/ui/closures/2229_closure_analysis/bad-pattern.stderr
@@ -0,0 +1,113 @@
+error[E0005]: refutable pattern in local binding
+ --> $DIR/bad-pattern.rs:13:13
+ |
+LL | let 0 = v1;
+ | ^ pattern `1_u32..=u32::MAX` not covered
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+ = note: the matched value is of type `u32`
+help: you might want to use `if let` to ignore the variant that isn't matched
+ |
+LL | if let 0 = v1 { todo!() };
+ | ++ +++++++++++
+help: alternatively, you could prepend the pattern with an underscore to define a new named variable; identifiers cannot begin with digits
+ |
+LL | let _0 = v1;
+ | +
+
+error[E0005]: refutable pattern in local binding
+ --> $DIR/bad-pattern.rs:14:14
+ |
+LL | let (0 | 1) = v1;
+ | ^^^^^ pattern `2_u32..=u32::MAX` not covered
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+ = note: the matched value is of type `u32`
+help: you might want to use `if let` to ignore the variant that isn't matched
+ |
+LL | if let (0 | 1) = v1 { todo!() };
+ | ++ +++++++++++
+
+error[E0005]: refutable pattern in local binding
+ --> $DIR/bad-pattern.rs:15:13
+ |
+LL | let 1.. = v1;
+ | ^^^ pattern `0_u32` not covered
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+ = note: the matched value is of type `u32`
+help: you might want to use `if let` to ignore the variant that isn't matched
+ |
+LL | if let 1.. = v1 { todo!() };
+ | ++ +++++++++++
+
+error[E0005]: refutable pattern in local binding
+ --> $DIR/bad-pattern.rs:16:13
+ |
+LL | let [0, 0, 0, 0] = v2;
+ | ^^^^^^^^^^^^ pattern `[1_u32..=u32::MAX, _, _, _]` not covered
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+ = note: the matched value is of type `[u32; 4]`
+help: you might want to use `if let` to ignore the variant that isn't matched
+ |
+LL | if let [0, 0, 0, 0] = v2 { todo!() };
+ | ++ +++++++++++
+
+error[E0005]: refutable pattern in local binding
+ --> $DIR/bad-pattern.rs:17:13
+ |
+LL | let [0] = v4;
+ | ^^^ patterns `&[]` and `&[_, _, ..]` not covered
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+ = note: the matched value is of type `&[u32]`
+help: you might want to use `if let` to ignore the variants that aren't matched
+ |
+LL | if let [0] = v4 { todo!() };
+ | ++ +++++++++++
+
+error[E0005]: refutable pattern in local binding
+ --> $DIR/bad-pattern.rs:18:13
+ |
+LL | let Refutable::A = v3;
+ | ^^^^^^^^^^^^ pattern `Refutable::B` not covered
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+note: `Refutable` defined here
+ --> $DIR/bad-pattern.rs:4:6
+ |
+LL | enum Refutable {
+ | ^^^^^^^^^
+LL | A,
+LL | B,
+ | - not covered
+ = note: the matched value is of type `Refutable`
+help: you might want to use `if let` to ignore the variant that isn't matched
+ |
+LL | if let Refutable::A = v3 { todo!() };
+ | ++ +++++++++++
+
+error[E0005]: refutable pattern in local binding
+ --> $DIR/bad-pattern.rs:19:13
+ |
+LL | let PAT = v1;
+ | ^^^
+ | |
+ | pattern `1_u32..=u32::MAX` not covered
+ | missing patterns are not covered because `PAT` is interpreted as a constant pattern, not a new variable
+ | help: introduce a variable instead: `PAT_var`
+ |
+ = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
+ = note: for more information, visit https://doc.rust-lang.org/book/ch18-02-refutability.html
+ = note: the matched value is of type `u32`
+
+error: aborting due to 7 previous errors
+
+For more information about this error, try `rustc --explain E0005`.