@@ -1131,7 +1131,7 @@ impl<'hir> Pat<'hir> {
11311131 use PatKind :: * ;
11321132 match self . kind {
11331133 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => true ,
1134- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1134+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_short_ ( it) ,
11351135 Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
11361136 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
11371137 Slice ( before, slice, after) => {
@@ -1158,7 +1158,7 @@ impl<'hir> Pat<'hir> {
11581158 use PatKind :: * ;
11591159 match self . kind {
11601160 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => { }
1161- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1161+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_ ( it) ,
11621162 Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
11631163 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
11641164 Slice ( before, slice, after) => {
@@ -1310,6 +1310,9 @@ pub enum PatKind<'hir> {
13101310 /// A literal.
13111311 Lit ( & ' hir Expr < ' hir > ) ,
13121312
1313+ /// A guard pattern (e.g., `x if guard(x)`).
1314+ Guard ( & ' hir Pat < ' hir > , & ' hir Expr < ' hir > ) ,
1315+
13131316 /// A range pattern (e.g., `1..=2` or `1..2`).
13141317 Range ( Option < & ' hir Expr < ' hir > > , Option < & ' hir Expr < ' hir > > , RangeEnd ) ,
13151318
0 commit comments