@@ -1002,7 +1002,7 @@ impl<'hir> Pat<'hir> {
1002
1002
1003
1003
use PatKind :: * ;
1004
1004
match self . kind {
1005
- Wild | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => true ,
1005
+ Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => true ,
1006
1006
Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1007
1007
Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
1008
1008
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
@@ -1029,7 +1029,7 @@ impl<'hir> Pat<'hir> {
1029
1029
1030
1030
use PatKind :: * ;
1031
1031
match self . kind {
1032
- Wild | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => { }
1032
+ Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => { }
1033
1033
Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1034
1034
Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
1035
1035
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
@@ -1142,6 +1142,9 @@ pub enum PatKind<'hir> {
1142
1142
/// Invariant: `pats.len() >= 2`.
1143
1143
Or ( & ' hir [ Pat < ' hir > ] ) ,
1144
1144
1145
+ /// A never pattern `!`.
1146
+ Never ,
1147
+
1145
1148
/// A path pattern for a unit struct/variant or a (maybe-associated) constant.
1146
1149
Path ( QPath < ' hir > ) ,
1147
1150
0 commit comments