@@ -5,7 +5,7 @@ use super::ImplTraitTypeIdVisitor;
5
5
use super :: AnonymousLifetimeMode ;
6
6
use super :: ParamMode ;
7
7
8
- use crate :: hir:: { self , HirVec } ;
8
+ use crate :: hir;
9
9
use crate :: hir:: ptr:: P ;
10
10
use crate :: hir:: def_id:: DefId ;
11
11
use crate :: hir:: def:: { Res , DefKind } ;
@@ -107,7 +107,7 @@ impl<'a, 'lowering, 'hir> Visitor<'a> for ItemLowerer<'a, 'lowering, 'hir> {
107
107
}
108
108
}
109
109
110
- impl LoweringContext < ' _ , ' hir > {
110
+ impl < ' hir > LoweringContext < ' _ , ' hir > {
111
111
// Same as the method above, but accepts `hir::GenericParam`s
112
112
// instead of `ast::GenericParam`s.
113
113
// This should only be used with generics that have already had their
@@ -1052,7 +1052,7 @@ impl LoweringContext<'_, 'hir> {
1052
1052
}
1053
1053
}
1054
1054
1055
- fn record_body ( & mut self , params : HirVec < hir:: Param > , value : hir:: Expr ) -> hir:: BodyId {
1055
+ fn record_body ( & mut self , params : & ' hir [ hir :: Param ] , value : hir:: Expr ) -> hir:: BodyId {
1056
1056
let body = hir:: Body {
1057
1057
generator_kind : self . generator_kind ,
1058
1058
params,
@@ -1065,7 +1065,7 @@ impl LoweringContext<'_, 'hir> {
1065
1065
1066
1066
fn lower_body (
1067
1067
& mut self ,
1068
- f : impl FnOnce ( & mut LoweringContext < ' _ , ' _ > ) -> ( HirVec < hir:: Param > , hir:: Expr ) ,
1068
+ f : impl FnOnce ( & mut Self ) -> ( & ' hir [ hir :: Param ] , hir:: Expr ) ,
1069
1069
) -> hir:: BodyId {
1070
1070
let prev_gen_kind = self . generator_kind . take ( ) ;
1071
1071
let ( parameters, result) = f ( self ) ;
@@ -1089,7 +1089,9 @@ impl LoweringContext<'_, 'hir> {
1089
1089
body : impl FnOnce ( & mut LoweringContext < ' _ , ' _ > ) -> hir:: Expr ,
1090
1090
) -> hir:: BodyId {
1091
1091
self . lower_body ( |this| (
1092
- decl. inputs . iter ( ) . map ( |x| this. lower_param ( x) ) . collect ( ) ,
1092
+ this. arena . alloc_from_iter (
1093
+ decl. inputs . iter ( ) . map ( |x| this. lower_param ( x) )
1094
+ ) ,
1093
1095
body ( this) ,
1094
1096
) )
1095
1097
}
@@ -1111,7 +1113,7 @@ impl LoweringContext<'_, 'hir> {
1111
1113
}
1112
1114
1113
1115
pub ( super ) fn lower_const_body ( & mut self , span : Span , expr : Option < & Expr > ) -> hir:: BodyId {
1114
- self . lower_body ( |this| ( hir_vec ! [ ] , match expr {
1116
+ self . lower_body ( |this| ( & [ ] , match expr {
1115
1117
Some ( expr) => this. lower_expr ( expr) ,
1116
1118
None => this. expr_err ( span) ,
1117
1119
} ) )
@@ -1299,7 +1301,8 @@ impl LoweringContext<'_, 'hir> {
1299
1301
) ;
1300
1302
this. expr_block ( P ( body) , AttrVec :: new ( ) )
1301
1303
} ) ;
1302
- ( HirVec :: from ( parameters) , this. expr ( body_span, async_expr, AttrVec :: new ( ) ) )
1304
+
1305
+ ( this. arena . alloc_from_iter ( parameters) , this. expr ( body_span, async_expr, AttrVec :: new ( ) ) )
1303
1306
} )
1304
1307
}
1305
1308
0 commit comments