@@ -2531,16 +2531,12 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
2531
2531
let mut expected_arg_tys = expected_arg_tys;
2532
2532
let expected_arg_count = fn_inputs. len ( ) ;
2533
2533
2534
- fn parameter_count_error < ' tcx > ( sess : & Session ,
2535
- sp : Span ,
2536
- expr_sp : Span ,
2537
- expected_count : usize ,
2538
- arg_count : usize ,
2539
- error_code : & str ,
2540
- variadic : bool ,
2541
- def_span : Option < Span > ,
2542
- sugg_unit : bool ) {
2543
- let mut err = sess. struct_span_err_with_code ( sp,
2534
+ let param_count_error = |expected_count : usize ,
2535
+ arg_count : usize ,
2536
+ error_code : & str ,
2537
+ variadic : bool ,
2538
+ sugg_unit : bool | {
2539
+ let mut err = tcx. sess . struct_span_err_with_code ( sp,
2544
2540
& format ! ( "this function takes {}{} parameter{} but {} parameter{} supplied" ,
2545
2541
if variadic { "at least " } else { "" } ,
2546
2542
expected_count,
@@ -2549,11 +2545,11 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
2549
2545
if arg_count == 1 { " was" } else { "s were" } ) ,
2550
2546
DiagnosticId :: Error ( error_code. to_owned ( ) ) ) ;
2551
2547
2552
- if let Some ( def_s) = def_span. map ( |sp| sess. codemap ( ) . def_span ( sp) ) {
2548
+ if let Some ( def_s) = def_span. map ( |sp| tcx . sess . codemap ( ) . def_span ( sp) ) {
2553
2549
err. span_label ( def_s, "defined here" ) ;
2554
2550
}
2555
2551
if sugg_unit {
2556
- let sugg_span = sess. codemap ( ) . end_point ( expr_sp) ;
2552
+ let sugg_span = tcx . sess . codemap ( ) . end_point ( expr_sp) ;
2557
2553
// remove closing `)` from the span
2558
2554
let sugg_span = sugg_span. shrink_to_lo ( ) ;
2559
2555
err. span_suggestion (
@@ -2567,14 +2563,13 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
2567
2563
if expected_count == 1 { "" } else { "s" } ) ) ;
2568
2564
}
2569
2565
err. emit ( ) ;
2570
- }
2566
+ } ;
2571
2567
2572
2568
let formal_tys = if tuple_arguments == TupleArguments {
2573
2569
let tuple_type = self . structurally_resolved_type ( sp, fn_inputs[ 0 ] ) ;
2574
2570
match tuple_type. sty {
2575
2571
ty:: TyTuple ( arg_types) if arg_types. len ( ) != args. len ( ) => {
2576
- parameter_count_error ( tcx. sess , sp, expr_sp, arg_types. len ( ) , args. len ( ) ,
2577
- "E0057" , false , def_span, false ) ;
2572
+ param_count_error ( arg_types. len ( ) , args. len ( ) , "E0057" , false , false ) ;
2578
2573
expected_arg_tys = & [ ] ;
2579
2574
self . err_args ( args. len ( ) )
2580
2575
}
@@ -2602,8 +2597,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
2602
2597
if supplied_arg_count >= expected_arg_count {
2603
2598
fn_inputs. to_vec ( )
2604
2599
} else {
2605
- parameter_count_error ( tcx. sess , sp, expr_sp, expected_arg_count,
2606
- supplied_arg_count, "E0060" , true , def_span, false ) ;
2600
+ param_count_error ( expected_arg_count, supplied_arg_count, "E0060" , true , false ) ;
2607
2601
expected_arg_tys = & [ ] ;
2608
2602
self . err_args ( supplied_arg_count)
2609
2603
}
@@ -2616,8 +2610,8 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
2616
2610
} else {
2617
2611
false
2618
2612
} ;
2619
- parameter_count_error ( tcx . sess , sp , expr_sp , expected_arg_count ,
2620
- supplied_arg_count , "E0061" , false , def_span , sugg_unit ) ;
2613
+ param_count_error ( expected_arg_count , supplied_arg_count , "E0061" , false , sugg_unit ) ;
2614
+
2621
2615
expected_arg_tys = & [ ] ;
2622
2616
self . err_args ( supplied_arg_count)
2623
2617
} ;
0 commit comments