@@ -1139,7 +1139,7 @@ impl<'hir> Pat<'hir> {
11391139 use PatKind :: * ;
11401140 match self . kind {
11411141 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => true ,
1142- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1142+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_short_ ( it) ,
11431143 Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
11441144 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
11451145 Slice ( before, slice, after) => {
@@ -1166,7 +1166,7 @@ impl<'hir> Pat<'hir> {
11661166 use PatKind :: * ;
11671167 match self . kind {
11681168 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => { }
1169- Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1169+ Box ( s) | Deref ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) | Guard ( s , _ ) => s. walk_ ( it) ,
11701170 Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
11711171 TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
11721172 Slice ( before, slice, after) => {
@@ -1318,6 +1318,9 @@ pub enum PatKind<'hir> {
13181318 /// A literal.
13191319 Lit ( & ' hir Expr < ' hir > ) ,
13201320
1321+ /// A guard pattern (e.g., `x if guard(x)`).
1322+ Guard ( & ' hir Pat < ' hir > , & ' hir Expr < ' hir > ) ,
1323+
13211324 /// A range pattern (e.g., `1..=2` or `1..2`).
13221325 Range ( Option < & ' hir Expr < ' hir > > , Option < & ' hir Expr < ' hir > > , RangeEnd ) ,
13231326
0 commit comments