@@ -28,9 +28,7 @@ use rustc_infer::infer::{self, DefineOpaqueTypes, InferOk, RegionVariableOrigin}
2828use rustc_infer:: traits:: query:: NoSolution ;
2929use rustc_middle:: ty:: adjustment:: { Adjust , Adjustment , AllowTwoPhase } ;
3030use rustc_middle:: ty:: error:: { ExpectedFound , TypeError } ;
31- use rustc_middle:: ty:: {
32- self , AdtKind , FnSigKind , GenericArgsRef , Ty , TypeVisitableExt , Unnormalized ,
33- } ;
31+ use rustc_middle:: ty:: { self , AdtKind , GenericArgsRef , Ty , TypeVisitableExt , Unnormalized } ;
3432use rustc_middle:: { bug, span_bug} ;
3533use rustc_session:: errors:: { ExprParenthesesNeeded , feature_err} ;
3634use rustc_span:: edit_distance:: find_best_match_for_name;
@@ -1468,17 +1466,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
14681466 // Handle splatted method arguments
14691467 // self is already handled as `rcvr`, so it's never splatted here
14701468 let method_inputs = & method. sig . inputs ( ) [ 1 ..] ;
1471- let method_fn_sig_kind = if let Some ( splatted_arg_index) =
1472- method. sig . fn_sig_kind . splatted ( )
1473- {
1474- method
1475- . sig
1476- . fn_sig_kind
1477- . set_splatted ( Some ( splatted_arg_index. strict_sub ( 1 ) ) , method_inputs. len ( ) )
1478- . unwrap ( )
1479- } else {
1480- method. sig . fn_sig_kind
1481- } ;
1469+ let method_tuple_args_flag =
1470+ TupleArgumentsFlag :: with_fn_sig_kind ( method. sig . fn_sig_kind , true ) ;
14821471
14831472 self . check_argument_types (
14841473 segment. ident . span ,
@@ -1487,8 +1476,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
14871476 method. sig . output ( ) ,
14881477 expected,
14891478 args,
1490- method_fn_sig_kind ,
1491- TupleArgumentsFlag :: NotCallOper ,
1479+ method . sig . fn_sig_kind . c_variadic ( ) ,
1480+ method_tuple_args_flag ,
14921481 Some ( method. def_id ) ,
14931482 Some ( method. args ) ,
14941483 ) ;
@@ -1510,9 +1499,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
15101499 err_output,
15111500 NoExpectation ,
15121501 args,
1513- // Avoid spurious unsafe errors by using a safe dummy sig
1514- FnSigKind :: dummy ( ) ,
1515- TupleArgumentsFlag :: NotCallOper ,
1502+ false ,
1503+ TupleArgumentsFlag :: DontTupleArgs ,
15161504 None ,
15171505 Some ( GenericArgsRef :: default ( ) ) ,
15181506 ) ;
0 commit comments