@@ -87,7 +87,6 @@ use rustc_front::hir;
87
87
use syntax:: { ast, codemap} ;
88
88
use syntax:: parse:: token:: InternedString ;
89
89
use syntax:: ptr:: P ;
90
- use syntax:: parse:: token;
91
90
use std:: mem;
92
91
93
92
// Destinations
@@ -1062,7 +1061,6 @@ fn trans_rvalue_dps_unadjusted<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
1062
1061
-> Block < ' blk , ' tcx > {
1063
1062
let _icx = push_ctxt ( "trans_rvalue_dps_unadjusted" ) ;
1064
1063
let mut bcx = bcx;
1065
- let tcx = bcx. tcx ( ) ;
1066
1064
1067
1065
debuginfo:: set_source_location ( bcx. fcx , expr. id , expr. span ) ;
1068
1066
@@ -1091,59 +1089,6 @@ fn trans_rvalue_dps_unadjusted<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
1091
1089
node_id_type ( bcx, expr. id ) ,
1092
1090
dest)
1093
1091
}
1094
- hir:: ExprRange ( ref start, ref end) => {
1095
- // FIXME it is just not right that we are synthesising ast nodes in
1096
- // trans. Shudder.
1097
- fn make_field ( field_name : & str , expr : P < hir:: Expr > ) -> hir:: Field {
1098
- hir:: Field {
1099
- name : codemap:: dummy_spanned ( token:: intern ( field_name) ) ,
1100
- expr : expr,
1101
- span : codemap:: DUMMY_SP ,
1102
- }
1103
- }
1104
-
1105
- // A range just desugars into a struct.
1106
- // Note that the type of the start and end may not be the same, but
1107
- // they should only differ in their lifetime, which should not matter
1108
- // in trans.
1109
- let ( did, fields, ty_params) = match ( start, end) {
1110
- ( & Some ( ref start) , & Some ( ref end) ) => {
1111
- // Desugar to Range
1112
- let fields = vec ! [ make_field( "start" , start. clone( ) ) ,
1113
- make_field( "end" , end. clone( ) ) ] ;
1114
- ( tcx. lang_items . range_struct ( ) , fields, vec ! [ node_id_type( bcx, start. id) ] )
1115
- }
1116
- ( & Some ( ref start) , & None ) => {
1117
- // Desugar to RangeFrom
1118
- let fields = vec ! [ make_field( "start" , start. clone( ) ) ] ;
1119
- ( tcx. lang_items . range_from_struct ( ) , fields, vec ! [ node_id_type( bcx, start. id) ] )
1120
- }
1121
- ( & None , & Some ( ref end) ) => {
1122
- // Desugar to RangeTo
1123
- let fields = vec ! [ make_field( "end" , end. clone( ) ) ] ;
1124
- ( tcx. lang_items . range_to_struct ( ) , fields, vec ! [ node_id_type( bcx, end. id) ] )
1125
- }
1126
- _ => {
1127
- // Desugar to RangeFull
1128
- ( tcx. lang_items . range_full_struct ( ) , vec ! [ ] , vec ! [ ] )
1129
- }
1130
- } ;
1131
-
1132
- if let Some ( did) = did {
1133
- let substs = Substs :: new_type ( ty_params, vec ! [ ] ) ;
1134
- trans_struct ( bcx,
1135
- & fields,
1136
- None ,
1137
- expr. span ,
1138
- expr. id ,
1139
- tcx. mk_struct ( tcx. lookup_adt_def ( did) ,
1140
- tcx. mk_substs ( substs) ) ,
1141
- dest)
1142
- } else {
1143
- tcx. sess . span_bug ( expr. span ,
1144
- "No lang item for ranges (how did we get this far?)" )
1145
- }
1146
- }
1147
1092
hir:: ExprTup ( ref args) => {
1148
1093
let numbered_fields: Vec < ( usize , & hir:: Expr ) > =
1149
1094
args. iter ( ) . enumerate ( ) . map ( |( i, arg) | ( i, & * * arg) ) . collect ( ) ;
@@ -2627,7 +2572,6 @@ fn expr_kind(tcx: &ty::ctxt, expr: &hir::Expr) -> ExprKind {
2627
2572
hir:: ExprCall ( ..) |
2628
2573
hir:: ExprMethodCall ( ..) |
2629
2574
hir:: ExprStruct ( ..) |
2630
- hir:: ExprRange ( ..) |
2631
2575
hir:: ExprTup ( ..) |
2632
2576
hir:: ExprIf ( ..) |
2633
2577
hir:: ExprMatch ( ..) |
0 commit comments