@@ -1002,7 +1002,7 @@ impl<'hir> Pat<'hir> {
10021002
10031003 use PatKind :: * ;
10041004 match self . kind {
1005- Wild | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => true ,
1005+ Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => true ,
10061006 Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
10071007 Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
10081008 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
@@ -1029,7 +1029,7 @@ impl<'hir> Pat<'hir> {
10291029
10301030 use PatKind :: * ;
10311031 match self . kind {
1032- Wild | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => { }
1032+ Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) => { }
10331033 Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
10341034 Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
10351035 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
@@ -1142,6 +1142,9 @@ pub enum PatKind<'hir> {
11421142 /// Invariant: `pats.len() >= 2`.
11431143 Or ( & ' hir [ Pat < ' hir > ] ) ,
11441144
1145+ /// A never pattern `!`.
1146+ Never ,
1147+
11451148 /// A path pattern for a unit struct/variant or a (maybe-associated) constant.
11461149 Path ( QPath < ' hir > ) ,
11471150
0 commit comments