@@ -1015,7 +1015,7 @@ impl<'hir> Pat<'hir> {
1015
1015
use PatKind :: * ;
1016
1016
match self . kind {
1017
1017
Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => true ,
1018
- Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1018
+ Box ( s) | Deref ( s ) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_short_ ( it) ,
1019
1019
Struct ( _, fields, _) => fields. iter ( ) . all ( |field| field. pat . walk_short_ ( it) ) ,
1020
1020
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . all ( |p| p. walk_short_ ( it) ) ,
1021
1021
Slice ( before, slice, after) => {
@@ -1042,7 +1042,7 @@ impl<'hir> Pat<'hir> {
1042
1042
use PatKind :: * ;
1043
1043
match self . kind {
1044
1044
Wild | Never | Lit ( _) | Range ( ..) | Binding ( .., None ) | Path ( _) | Err ( _) => { }
1045
- Box ( s) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1045
+ Box ( s) | Deref ( s ) | Ref ( s, _) | Binding ( .., Some ( s) ) => s. walk_ ( it) ,
1046
1046
Struct ( _, fields, _) => fields. iter ( ) . for_each ( |field| field. pat . walk_ ( it) ) ,
1047
1047
TupleStruct ( _, s, _) | Tuple ( s, _) | Or ( s) => s. iter ( ) . for_each ( |p| p. walk_ ( it) ) ,
1048
1048
Slice ( before, slice, after) => {
@@ -1185,6 +1185,9 @@ pub enum PatKind<'hir> {
1185
1185
/// A `box` pattern.
1186
1186
Box ( & ' hir Pat < ' hir > ) ,
1187
1187
1188
+ /// A `deref` pattern (currently `deref!()` macro-based syntax).
1189
+ Deref ( & ' hir Pat < ' hir > ) ,
1190
+
1188
1191
/// A reference pattern (e.g., `&mut (a, b)`).
1189
1192
Ref ( & ' hir Pat < ' hir > , Mutability ) ,
1190
1193
0 commit comments