summaryrefslogtreecommitdiffstats
path: root/src/test/ui/pattern/usefulness/non-exhaustive-match.stderr
blob: 4234600d0d02f75144dd41ef900ea1681d522aa6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
error[E0004]: non-exhaustive patterns: `T::A` not covered
  --> $DIR/non-exhaustive-match.rs:7:11
   |
LL |     match x { T::B => { } }
   |           ^ pattern `T::A` not covered
   |
note: `T` defined here
  --> $DIR/non-exhaustive-match.rs:3:10
   |
LL | enum T { A, B }
   |      -   ^ not covered
   = note: the matched value is of type `T`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
   |
LL |     match x { T::B => { }, T::A => todo!() }
   |                          +++++++++++++++++

error[E0004]: non-exhaustive patterns: `false` not covered
  --> $DIR/non-exhaustive-match.rs:8:11
   |
LL |     match true {
   |           ^^^^ pattern `false` not covered
   |
   = note: the matched value is of type `bool`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
   |
LL ~       true => {}
LL +       false => todo!()
   |

error[E0004]: non-exhaustive patterns: `Some(_)` not covered
  --> $DIR/non-exhaustive-match.rs:11:11
   |
LL |     match Some(10) {
   |           ^^^^^^^^ pattern `Some(_)` not covered
   |
note: `Option<i32>` defined here
  --> $SRC_DIR/core/src/option.rs:LL:COL
   |
LL | pub enum Option<T> {
   | ------------------
...
LL |     Some(#[stable(feature = "rust1", since = "1.0.0")] T),
   |     ^^^^ not covered
   = note: the matched value is of type `Option<i32>`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
   |
LL ~       None => {}
LL +       Some(_) => todo!()
   |

error[E0004]: non-exhaustive patterns: `(_, _, i32::MIN..=3_i32)` and `(_, _, 5_i32..=i32::MAX)` not covered
  --> $DIR/non-exhaustive-match.rs:14:11
   |
LL |     match (2, 3, 4) {
   |           ^^^^^^^^^ patterns `(_, _, i32::MIN..=3_i32)` and `(_, _, 5_i32..=i32::MAX)` not covered
   |
   = note: the matched value is of type `(i32, i32, i32)`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
   |
LL ~       (_, _, 4) => {}
LL +       (_, _, i32::MIN..=3_i32) | (_, _, 5_i32..=i32::MAX) => todo!()
   |

error[E0004]: non-exhaustive patterns: `(T::A, T::A)` and `(T::B, T::B)` not covered
  --> $DIR/non-exhaustive-match.rs:18:11
   |
LL |     match (T::A, T::A) {
   |           ^^^^^^^^^^^^ patterns `(T::A, T::A)` and `(T::B, T::B)` not covered
   |
   = note: the matched value is of type `(T, T)`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
   |
LL ~       (T::B, T::A) => {}
LL +       (T::A, T::A) | (T::B, T::B) => todo!()
   |

error[E0004]: non-exhaustive patterns: `T::B` not covered
  --> $DIR/non-exhaustive-match.rs:22:11
   |
LL |     match T::A {
   |           ^^^^ pattern `T::B` not covered
   |
note: `T` defined here
  --> $DIR/non-exhaustive-match.rs:3:13
   |
LL | enum T { A, B }
   |      -      ^ not covered
   = note: the matched value is of type `T`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
   |
LL ~       T::A => {}
LL +       T::B => todo!()
   |

error[E0004]: non-exhaustive patterns: `[]` not covered
  --> $DIR/non-exhaustive-match.rs:33:11
   |
LL |     match *vec {
   |           ^^^^ pattern `[]` not covered
   |
   = note: the matched value is of type `[Option<isize>]`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
   |
LL ~         [None] => {}
LL +         [] => todo!()
   |

error[E0004]: non-exhaustive patterns: `[_, _, _, _, ..]` not covered
  --> $DIR/non-exhaustive-match.rs:46:11
   |
LL |     match *vec {
   |           ^^^^ pattern `[_, _, _, _, ..]` not covered
   |
   = note: the matched value is of type `[f32]`
help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
   |
LL ~         [] => (),
LL +         [_, _, _, _, ..] => todo!()
   |

error: aborting due to 8 previous errors

For more information about this error, try `rustc --explain E0004`.