@@ -1387,7 +1387,7 @@ impl<'hir> Pat<'hir> {
13871387 use PatKind :: * ;
13881388 match self . kind {
13891389 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => true ,
1390- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1390+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_short_ ( it) ,
13911391 Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
13921392 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
13931393 Slice ( before, slice, after) => {
@@ -1414,7 +1414,7 @@ impl<'hir> Pat<'hir> {
14141414 use PatKind :: * ;
14151415 match self . kind {
14161416 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => { }
1417- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1417+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_ ( it) ,
14181418 Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
14191419 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
14201420 Slice ( before, slice, after) => {
@@ -1566,6 +1566,9 @@ pub enum PatKind<'hir> {
15661566 /// A literal.
15671567 Lit ( & ' hir Expr < ' hir > ) ,
15681568
1569+ /// A guard pattern (e.g., `x if guard(x)`).
1570+ Guard ( & ' hir Pat < ' hir > , & ' hir Expr < ' hir > ) ,
1571+
15691572 /// A range pattern (e.g., `1..=2` or `1..2`).
15701573 Range ( Option < & ' hir Expr < ' hir > > , Option < & ' hir Expr < ' hir > > , RangeEnd ) ,
15711574
0 commit comments