File tree 3 files changed +39
-1
lines changed
3 files changed +39
-1
lines changed Original file line number Diff line number Diff line change @@ -152,7 +152,11 @@ impl<'tcx> fmt::Display for Pattern<'tcx> {
152
152
Some ( & adt_def. variants [ variant_index] )
153
153
}
154
154
_ => if let ty:: TyAdt ( adt, _) = self . ty . sty {
155
- Some ( adt. struct_variant ( ) )
155
+ if adt. is_univariant ( ) {
156
+ Some ( & adt. variants [ 0 ] )
157
+ } else {
158
+ None
159
+ }
156
160
} else {
157
161
None
158
162
}
Original file line number Diff line number Diff line change
1
+ // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ enum P {
12
+ C ( PC ) ,
13
+ }
14
+
15
+ enum PC {
16
+ Q ,
17
+ QA ,
18
+ }
19
+
20
+ fn test ( proto : P ) {
21
+ match proto {
22
+ P :: C ( PC :: Q ) => ( ) ,
23
+ }
24
+ }
25
+
26
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ error[E0004]: non-exhaustive patterns: `C(QA)` not covered
2
+ --> $DIR/issue-40221.rs:11:11
3
+ |
4
+ 21 | match proto {
5
+ | ^^^^^ pattern `C(QA)` not covered
6
+
7
+ error: aborting due to previous error
8
+
You can’t perform that action at this time.
0 commit comments