@@ -1144,7 +1144,7 @@ impl<'hir> Pat<'hir> {
11441144 use PatKind :: * ;
11451145 match self . kind {
11461146 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => true ,
1147- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1147+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_short_ ( it) ,
11481148 Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
11491149 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
11501150 Slice ( before, slice, after) => {
@@ -1171,7 +1171,7 @@ impl<'hir> Pat<'hir> {
11711171 use PatKind :: * ;
11721172 match self . kind {
11731173 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => { }
1174- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1174+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_ ( it) ,
11751175 Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
11761176 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
11771177 Slice ( before, slice, after) => {
@@ -1323,6 +1323,9 @@ pub enum PatKind<'hir> {
13231323 /// A literal.
13241324 Lit ( & ' hir Expr < ' hir > ) ,
13251325
1326+ /// A guard pattern (e.g., `x if guard(x)`).
1327+ Guard ( & ' hir Pat < ' hir > , & ' hir Expr < ' hir > ) ,
1328+
13261329 /// A range pattern (e.g., `1..=2` or `1..2`).
13271330 Range ( Option < & ' hir Expr < ' hir > > , Option < & ' hir Expr < ' hir > > , RangeEnd ) ,
13281331
0 commit comments