@@ -1003,7 +1003,7 @@ impl<'hir> Pat<'hir> {
10031003 use PatKind :: * ;
10041004 match self . kind {
10051005 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => true ,
1006- Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1006+ Box ( s) | Deref ( 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) ) ,
10091009 Slice ( before, slice, after) => {
@@ -1030,7 +1030,7 @@ impl<'hir> Pat<'hir> {
10301030 use PatKind :: * ;
10311031 match self . kind {
10321032 Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => { }
1033- Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1033+ Box ( s) | Deref ( 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) ) ,
10361036 Slice ( before, slice, after) => {
@@ -1173,6 +1173,9 @@ pub enum PatKind<'hir> {
11731173 /// A `box` pattern.
11741174 Box ( & ' hir Pat < ' hir > ) ,
11751175
1176+ /// A `deref` pattern (currently `deref!()` macro-based syntax).
1177+ Deref ( & ' hir Pat < ' hir > ) ,
1178+
11761179 /// A reference pattern (e.g., `&mut (a, b)`).
11771180 Ref ( & ' hir Pat < ' hir > , Mutability ) ,
11781181
0 commit comments