@@ -1003,7 +1003,7 @@ impl<'hir> Pat<'hir> {
1003
1003
use PatKind :: * ;
1004
1004
match self . kind {
1005
1005
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) ,
1007
1007
Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
1008
1008
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
1009
1009
Slice ( before, slice, after) => {
@@ -1030,7 +1030,7 @@ impl<'hir> Pat<'hir> {
1030
1030
use PatKind :: * ;
1031
1031
match self . kind {
1032
1032
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) ,
1034
1034
Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
1035
1035
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
1036
1036
Slice ( before, slice, after) => {
@@ -1173,6 +1173,9 @@ pub enum PatKind<'hir> {
1173
1173
/// A `box` pattern.
1174
1174
Box ( & ' hir Pat < ' hir > ) ,
1175
1175
1176
+ /// A `deref` pattern (currently `deref!()` macro-based syntax).
1177
+ Deref ( & ' hir Pat < ' hir > ) ,
1178
+
1176
1179
/// A reference pattern (e.g., `&mut (a, b)`).
1177
1180
Ref ( & ' hir Pat < ' hir > , Mutability ) ,
1178
1181
0 commit comments