@@ -93,6 +93,7 @@ use syntax::ast;
93
93
use syntax:: codemap:: { self , Pos , Span } ;
94
94
use syntax:: parse:: token;
95
95
use syntax:: ptr:: P ;
96
+ use syntax:: util:: MoveMap ;
96
97
97
98
impl < ' tcx > ty:: ctxt < ' tcx > {
98
99
pub fn note_and_explain_region ( & self ,
@@ -1153,19 +1154,19 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> {
1153
1154
}
1154
1155
1155
1156
fn rebuild_ty_params ( & self ,
1156
- ty_params : P < [ hir:: TyParam ] > ,
1157
+ ty_params : hir :: HirVec < hir:: TyParam > ,
1157
1158
lifetime : hir:: Lifetime ,
1158
1159
region_names : & HashSet < ast:: Name > )
1159
- -> P < [ hir:: TyParam ] > {
1160
- ty_params. map ( |ty_param| {
1161
- let bounds = self . rebuild_ty_param_bounds ( ty_param. bounds . clone ( ) ,
1160
+ -> hir :: HirVec < hir:: TyParam > {
1161
+ ty_params. move_map ( |ty_param| {
1162
+ let bounds = self . rebuild_ty_param_bounds ( ty_param. bounds ,
1162
1163
lifetime,
1163
1164
region_names) ;
1164
1165
hir:: TyParam {
1165
1166
name : ty_param. name ,
1166
1167
id : ty_param. id ,
1167
1168
bounds : bounds,
1168
- default : ty_param. default . clone ( ) ,
1169
+ default : ty_param. default ,
1169
1170
span : ty_param. span ,
1170
1171
}
1171
1172
} )
@@ -1176,15 +1177,15 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> {
1176
1177
lifetime : hir:: Lifetime ,
1177
1178
region_names : & HashSet < ast:: Name > )
1178
1179
-> hir:: TyParamBounds {
1179
- ty_param_bounds. map ( |tpb| {
1180
+ ty_param_bounds. move_map ( |tpb| {
1180
1181
match tpb {
1181
- & hir:: RegionTyParamBound ( lt) => {
1182
+ hir:: RegionTyParamBound ( lt) => {
1182
1183
// FIXME -- it's unclear whether I'm supposed to
1183
1184
// substitute lifetime here. I suspect we need to
1184
1185
// be passing down a map.
1185
1186
hir:: RegionTyParamBound ( lt)
1186
1187
}
1187
- & hir:: TraitTyParamBound ( ref poly_tr, modifier) => {
1188
+ hir:: TraitTyParamBound ( ref poly_tr, modifier) => {
1188
1189
let tr = & poly_tr. trait_ref ;
1189
1190
let last_seg = tr. path . segments . last ( ) . unwrap ( ) ;
1190
1191
let mut insert = Vec :: new ( ) ;
@@ -1248,7 +1249,7 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> {
1248
1249
add : & Vec < hir:: Lifetime > ,
1249
1250
keep : & HashSet < ast:: Name > ,
1250
1251
remove : & HashSet < ast:: Name > ,
1251
- ty_params : P < [ hir:: TyParam ] > ,
1252
+ ty_params : hir :: HirVec < hir:: TyParam > ,
1252
1253
where_clause : hir:: WhereClause )
1253
1254
-> hir:: Generics {
1254
1255
let mut lifetimes = Vec :: new ( ) ;
@@ -1498,10 +1499,10 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> {
1498
1499
}
1499
1500
}
1500
1501
}
1501
- let new_types = data. types . map ( |t| {
1502
+ let new_types = data. types . iter ( ) . map ( |t| {
1502
1503
self . rebuild_arg_ty_or_output ( & * * t, lifetime, anon_nums, region_names)
1503
- } ) ;
1504
- let new_bindings = data. bindings . map ( |b| {
1504
+ } ) . collect ( ) ;
1505
+ let new_bindings = data. bindings . iter ( ) . map ( |b| {
1505
1506
hir:: TypeBinding {
1506
1507
id : b. id ,
1507
1508
name : b. name ,
@@ -1511,7 +1512,7 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> {
1511
1512
region_names) ,
1512
1513
span : b. span
1513
1514
}
1514
- } ) ;
1515
+ } ) . collect ( ) ;
1515
1516
hir:: AngleBracketedParameters ( hir:: AngleBracketedParameterData {
1516
1517
lifetimes : new_lts. into ( ) ,
1517
1518
types : new_types,
0 commit comments