@@ -945,19 +945,23 @@ impl<'hir> LoweringContext<'_, 'hir> {
945945 match & lhs. kind {
946946 // Underscore pattern.
947947 ExprKind :: Underscore => {
948- return self . pat ( lhs. span , hir:: PatKind :: Wild ) ;
948+ return self . pat_without_dbm ( lhs. span , hir:: PatKind :: Wild ) ;
949949 }
950950 // Slice patterns.
951951 ExprKind :: Array ( elements) => {
952952 let ( pats, rest) =
953953 self . destructure_sequence ( elements, "slice" , eq_sign_span, assignments) ;
954954 let slice_pat = if let Some ( ( i, span) ) = rest {
955955 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+ )
957961 } else {
958962 hir:: PatKind :: Slice ( pats, None , & [ ] )
959963 } ;
960- return self . pat ( lhs. span , slice_pat) ;
964+ return self . pat_without_dbm ( lhs. span , slice_pat) ;
961965 }
962966 // Tuple structs.
963967 ExprKind :: Call ( callee, args) => {
@@ -979,7 +983,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
979983 // Destructure like a tuple struct since the path is in fact a constructor.
980984 let tuple_struct_pat =
981985 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) ;
983987 }
984988 _ => {
985989 // If the path is not a constructor, lower as an ordinary LHS.
@@ -1028,20 +1032,20 @@ impl<'hir> LoweringContext<'_, 'hir> {
10281032 StructRest :: None => false ,
10291033 } ;
10301034 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) ;
10321036 }
10331037 // Tuples.
10341038 ExprKind :: Tup ( elements) => {
10351039 let ( pats, rest) =
10361040 self . destructure_sequence ( elements, "tuple" , eq_sign_span, assignments) ;
10371041 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) ;
10391043 }
10401044 // `(..)`. We special-case this for consistency with declarations.
10411045 ExprKind :: Paren ( e) => {
10421046 if let ExprKind :: Range ( None , None , RangeLimits :: HalfOpen ) = e. kind {
10431047 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) ;
10451049 }
10461050 }
10471051 _ => { }
0 commit comments