@@ -284,9 +284,6 @@ impl<'hir> LoweringContext<'_, 'hir> {
284284 ExprKind :: Index ( el, er, brackets_span) => {
285285 hir:: ExprKind :: Index ( self . lower_expr ( el) , self . lower_expr ( er) , * brackets_span)
286286 }
287- ExprKind :: Range ( Some ( e1) , Some ( e2) , RangeLimits :: Closed ) => {
288- self . lower_expr_range_closed ( e. span , e1, e2)
289- }
290287 ExprKind :: Range ( e1, e2, lims) => {
291288 self . lower_expr_range ( e. span , e1. as_deref ( ) , e2. as_deref ( ) , * lims)
292289 }
@@ -1512,15 +1509,39 @@ impl<'hir> LoweringContext<'_, 'hir> {
15121509
15131510 let lang_item = match ( e1, e2, lims) {
15141511 ( None , None , HalfOpen ) => hir:: LangItem :: RangeFull ,
1515- ( Some ( ..) , None , HalfOpen ) => hir:: LangItem :: RangeFrom ,
1512+ ( Some ( ..) , None , HalfOpen ) => {
1513+ if self . tcx . features ( ) . new_range ( ) {
1514+ hir:: LangItem :: RangeFromCopy
1515+ } else {
1516+ hir:: LangItem :: RangeFrom
1517+ }
1518+ }
15161519 ( None , Some ( ..) , HalfOpen ) => hir:: LangItem :: RangeTo ,
1517- ( Some ( ..) , Some ( ..) , HalfOpen ) => hir:: LangItem :: Range ,
1520+ ( Some ( ..) , Some ( ..) , HalfOpen ) => {
1521+ if self . tcx . features ( ) . new_range ( ) {
1522+ hir:: LangItem :: RangeCopy
1523+ } else {
1524+ hir:: LangItem :: Range
1525+ }
1526+ }
15181527 ( None , Some ( ..) , Closed ) => hir:: LangItem :: RangeToInclusive ,
1519- ( Some ( ..) , Some ( ..) , Closed ) => unreachable ! ( ) ,
1528+ ( Some ( e1) , Some ( e2) , Closed ) => {
1529+ if self . tcx . features ( ) . new_range ( ) {
1530+ hir:: LangItem :: RangeInclusiveCopy
1531+ } else {
1532+ return self . lower_expr_range_closed ( span, e1, e2) ;
1533+ }
1534+ }
15201535 ( start, None , Closed ) => {
15211536 self . dcx ( ) . emit_err ( InclusiveRangeWithNoEnd { span } ) ;
15221537 match start {
1523- Some ( ..) => hir:: LangItem :: RangeFrom ,
1538+ Some ( ..) => {
1539+ if self . tcx . features ( ) . new_range ( ) {
1540+ hir:: LangItem :: RangeFromCopy
1541+ } else {
1542+ hir:: LangItem :: RangeFrom
1543+ }
1544+ }
15241545 None => hir:: LangItem :: RangeFull ,
15251546 }
15261547 }
0 commit comments