@@ -1032,7 +1032,7 @@ impl<'hir> Pat<'hir> {
1032
1032
1033
1033
use PatKind :: * ;
1034
1034
match self . kind {
1035
- Wild | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => true ,
1035
+ Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => true ,
1036
1036
Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1037
1037
Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
1038
1038
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
@@ -1059,7 +1059,7 @@ impl<'hir> Pat<'hir> {
1059
1059
1060
1060
use PatKind :: * ;
1061
1061
match self . kind {
1062
- Wild | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => { }
1062
+ Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => { }
1063
1063
Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1064
1064
Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
1065
1065
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
@@ -1172,6 +1172,9 @@ pub enum PatKind<'hir> {
1172
1172
/// Invariant: `pats.len() >= 2`.
1173
1173
Or ( & ' hir [ Pat < ' hir > ] ) ,
1174
1174
1175
+ /// A never pattern `!`.
1176
+ Never ,
1177
+
1175
1178
/// A path pattern for a unit struct/variant or a (maybe-associated) constant.
1176
1179
Path ( QPath < ' hir > ) ,
1177
1180
0 commit comments