@@ -945,19 +945,23 @@ impl<'hir> LoweringContext<'_, 'hir> {
945
945
match & lhs. kind {
946
946
// Underscore pattern.
947
947
ExprKind :: Underscore => {
948
- return self . pat ( lhs. span , hir:: PatKind :: Wild ) ;
948
+ return self . pat_without_dbm ( lhs. span , hir:: PatKind :: Wild ) ;
949
949
}
950
950
// Slice patterns.
951
951
ExprKind :: Array ( elements) => {
952
952
let ( pats, rest) =
953
953
self . destructure_sequence ( elements, "slice" , eq_sign_span, assignments) ;
954
954
let slice_pat = if let Some ( ( i, span) ) = rest {
955
955
let ( before, after) = pats. split_at ( i) ;
956
- hir:: PatKind :: Slice ( before, Some ( self . pat ( span, hir:: PatKind :: Wild ) ) , after)
956
+ hir:: PatKind :: Slice (
957
+ before,
958
+ Some ( self . pat_without_dbm ( span, hir:: PatKind :: Wild ) ) ,
959
+ after,
960
+ )
957
961
} else {
958
962
hir:: PatKind :: Slice ( pats, None , & [ ] )
959
963
} ;
960
- return self . pat ( lhs. span , slice_pat) ;
964
+ return self . pat_without_dbm ( lhs. span , slice_pat) ;
961
965
}
962
966
// Tuple structs.
963
967
ExprKind :: Call ( callee, args) => {
@@ -979,7 +983,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
979
983
// Destructure like a tuple struct since the path is in fact a constructor.
980
984
let tuple_struct_pat =
981
985
hir:: PatKind :: TupleStruct ( qpath, pats, rest. map ( |r| r. 0 ) ) ;
982
- return self . pat ( lhs. span , tuple_struct_pat) ;
986
+ return self . pat_without_dbm ( lhs. span , tuple_struct_pat) ;
983
987
}
984
988
_ => {
985
989
// If the path is not a constructor, lower as an ordinary LHS.
@@ -1028,20 +1032,20 @@ impl<'hir> LoweringContext<'_, 'hir> {
1028
1032
StructRest :: None => false ,
1029
1033
} ;
1030
1034
let struct_pat = hir:: PatKind :: Struct ( qpath, field_pats, fields_omitted) ;
1031
- return self . pat ( lhs. span , struct_pat) ;
1035
+ return self . pat_without_dbm ( lhs. span , struct_pat) ;
1032
1036
}
1033
1037
// Tuples.
1034
1038
ExprKind :: Tup ( elements) => {
1035
1039
let ( pats, rest) =
1036
1040
self . destructure_sequence ( elements, "tuple" , eq_sign_span, assignments) ;
1037
1041
let tuple_pat = hir:: PatKind :: Tuple ( pats, rest. map ( |r| r. 0 ) ) ;
1038
- return self . pat ( lhs. span , tuple_pat) ;
1042
+ return self . pat_without_dbm ( lhs. span , tuple_pat) ;
1039
1043
}
1040
1044
// `(..)`. We special-case this for consistency with declarations.
1041
1045
ExprKind :: Paren ( e) => {
1042
1046
if let ExprKind :: Range ( None , None , RangeLimits :: HalfOpen ) = e. kind {
1043
1047
let tuple_pat = hir:: PatKind :: Tuple ( & [ ] , Some ( 0 ) ) ;
1044
- return self . pat ( lhs. span , tuple_pat) ;
1048
+ return self . pat_without_dbm ( lhs. span , tuple_pat) ;
1045
1049
}
1046
1050
}
1047
1051
_ => { }
0 commit comments