@@ -227,7 +227,7 @@ matchCallArguments(SmallVectorImpl<AnyFunctionType::Param> &args,
227
227
228
228
// Keep track of the parameter we're matching and what argument indices
229
229
// got bound to each parameter.
230
- unsigned paramIdx, numParams = params.size ();
230
+ unsigned numParams = params.size ();
231
231
parameterBindings.clear ();
232
232
parameterBindings.resize (numParams);
233
233
@@ -380,7 +380,8 @@ matchCallArguments(SmallVectorImpl<AnyFunctionType::Param> &args,
380
380
// Local function that attempts to bind the given parameter to arguments in
381
381
// the list.
382
382
bool haveUnfulfilledParams = false ;
383
- auto bindNextParameter = [&](unsigned &nextArgIdx, bool ignoreNameMismatch) {
383
+ auto bindNextParameter = [&](unsigned paramIdx, unsigned &nextArgIdx,
384
+ bool ignoreNameMismatch) {
384
385
const auto ¶m = params[paramIdx];
385
386
386
387
// Handle variadic parameters.
@@ -486,9 +487,9 @@ matchCallArguments(SmallVectorImpl<AnyFunctionType::Param> &args,
486
487
{
487
488
unsigned nextArgIdx = 0 ;
488
489
// Mark through the parameters, binding them to their arguments.
489
- for (paramIdx = 0 ; paramIdx != numParams; ++paramIdx ) {
490
+ for (auto paramIdx : indices (params) ) {
490
491
if (parameterBindings[paramIdx].empty ())
491
- bindNextParameter (nextArgIdx, false );
492
+ bindNextParameter (paramIdx, nextArgIdx, false );
492
493
}
493
494
}
494
495
@@ -506,7 +507,7 @@ matchCallArguments(SmallVectorImpl<AnyFunctionType::Param> &args,
506
507
// Find all of the named, unfulfilled parameters.
507
508
llvm::SmallVector<unsigned , 4 > unfulfilledNamedParams;
508
509
bool hasUnfulfilledUnnamedParams = false ;
509
- for (paramIdx = 0 ; paramIdx != numParams; ++paramIdx ) {
510
+ for (auto paramIdx : indices (params) ) {
510
511
if (parameterBindings[paramIdx].empty ()) {
511
512
if (params[paramIdx].getLabel ().empty ())
512
513
hasUnfulfilledUnnamedParams = true ;
@@ -542,7 +543,7 @@ matchCallArguments(SmallVectorImpl<AnyFunctionType::Param> &args,
542
543
// If we found a parameter to fulfill, do it.
543
544
if (bestScore > 0 ) {
544
545
// Bind this parameter to the argument.
545
- paramIdx = unfulfilledNamedParams[best];
546
+ auto paramIdx = unfulfilledNamedParams[best];
546
547
auto paramLabel = params[paramIdx].getLabel ();
547
548
548
549
parameterBindings[paramIdx].push_back (claim (paramLabel, argIdx));
@@ -568,12 +569,12 @@ matchCallArguments(SmallVectorImpl<AnyFunctionType::Param> &args,
568
569
// Restart at the first argument/parameter.
569
570
unsigned nextArgIdx = 0 ;
570
571
haveUnfulfilledParams = false ;
571
- for (paramIdx = 0 ; paramIdx != numParams; ++paramIdx ) {
572
+ for (auto paramIdx : indices (params) ) {
572
573
// Skip fulfilled parameters.
573
574
if (!parameterBindings[paramIdx].empty ())
574
575
continue ;
575
576
576
- bindNextParameter (nextArgIdx, true );
577
+ bindNextParameter (paramIdx, nextArgIdx, true );
577
578
}
578
579
}
579
580
@@ -619,7 +620,7 @@ matchCallArguments(SmallVectorImpl<AnyFunctionType::Param> &args,
619
620
620
621
// If we have any unfulfilled parameters, check them now.
621
622
if (haveUnfulfilledParams) {
622
- for (paramIdx = 0 ; paramIdx != numParams; ++paramIdx ) {
623
+ for (auto paramIdx : indices (params) ) {
623
624
// If we have a binding for this parameter, we're done.
624
625
if (!parameterBindings[paramIdx].empty ())
625
626
continue ;
0 commit comments