@@ -47,7 +47,7 @@ use rustc_errors::ErrorGuaranteed;
47
47
use rustc_hir:: def_id:: DefId ;
48
48
use rustc_middle:: span_bug;
49
49
use rustc_middle:: ty:: { Asyncness , ResolverAstLowering } ;
50
- use rustc_span:: { Ident , Span } ;
50
+ use rustc_span:: { Ident , Span , Symbol } ;
51
51
use { rustc_ast as ast, rustc_hir as hir} ;
52
52
53
53
use super :: { GenericArgsMode , ImplTraitContext , LoweringContext , ParamMode } ;
@@ -234,22 +234,23 @@ impl<'hir> LoweringContext<'_, 'hir> {
234
234
hir:: FnSig { decl, header, span }
235
235
}
236
236
237
- fn generate_param ( & mut self , span : Span ) -> ( hir:: Param < ' hir > , NodeId ) {
237
+ fn generate_param ( & mut self , idx : usize , span : Span ) -> ( hir:: Param < ' hir > , NodeId ) {
238
238
let pat_node_id = self . next_node_id ( ) ;
239
239
let pat_id = self . lower_node_id ( pat_node_id) ;
240
+ let ident = Ident :: with_dummy_span ( Symbol :: intern ( & format ! ( "arg{idx}" ) ) ) ;
240
241
let pat = self . arena . alloc ( hir:: Pat {
241
242
hir_id : pat_id,
242
- kind : hir:: PatKind :: Binding ( hir:: BindingMode :: NONE , pat_id, Ident :: empty ( ) , None ) ,
243
+ kind : hir:: PatKind :: Binding ( hir:: BindingMode :: NONE , pat_id, ident , None ) ,
243
244
span,
244
245
default_binding_modes : false ,
245
246
} ) ;
246
247
247
248
( hir:: Param { hir_id : self . next_id ( ) , pat, ty_span : span, span } , pat_node_id)
248
249
}
249
250
250
- fn generate_arg ( & mut self , param_id : HirId , span : Span ) -> hir:: Expr < ' hir > {
251
+ fn generate_arg ( & mut self , idx : usize , param_id : HirId , span : Span ) -> hir:: Expr < ' hir > {
251
252
let segments = self . arena . alloc_from_iter ( iter:: once ( hir:: PathSegment {
252
- ident : Ident :: empty ( ) ,
253
+ ident : Ident :: with_dummy_span ( Symbol :: intern ( & format ! ( "arg{idx}" ) ) ) ,
253
254
hir_id : self . next_id ( ) ,
254
255
res : Res :: Local ( param_id) ,
255
256
args : None ,
@@ -273,7 +274,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
273
274
let mut args: Vec < hir:: Expr < ' _ > > = Vec :: with_capacity ( param_count) ;
274
275
275
276
for idx in 0 ..param_count {
276
- let ( param, pat_node_id) = this. generate_param ( span) ;
277
+ let ( param, pat_node_id) = this. generate_param ( idx , span) ;
277
278
parameters. push ( param) ;
278
279
279
280
let arg = if let Some ( block) = block
@@ -289,7 +290,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
289
290
this. ident_and_label_to_local_id . insert ( pat_node_id, param. pat . hir_id . local_id ) ;
290
291
this. lower_target_expr ( & block)
291
292
} else {
292
- this. generate_arg ( param. pat . hir_id , span)
293
+ this. generate_arg ( idx , param. pat . hir_id , span)
293
294
} ;
294
295
args. push ( arg) ;
295
296
}
0 commit comments