@@ -255,7 +255,7 @@ namespace {
255255 }
256256
257257 MacroWalking getMacroWalkingBehavior () const override {
258- return MacroWalking::ArgumentsAndExpansion ;
258+ return MacroWalking::Arguments ;
259259 }
260260
261261 PreWalkResult<Expr *> walkToExprPre (Expr *E) override {
@@ -410,7 +410,6 @@ unsigned LocalDiscriminatorsRequest::evaluate(
410410 LocalDiscriminatorsRequest{dc->getParent ()}, 0 );
411411 }
412412
413- Optional<unsigned > expectedNextAutoclosureDiscriminator = None;
414413 ASTNode node;
415414 ParameterList *params = nullptr ;
416415 ParamDecl *selfParam = nullptr ;
@@ -436,7 +435,7 @@ unsigned LocalDiscriminatorsRequest::evaluate(
436435 params = closure->getParameters ();
437436 } else if (auto topLevel = dyn_cast<TopLevelCodeDecl>(dc)) {
438437 node = topLevel->getBody ();
439- expectedNextAutoclosureDiscriminator = ctx. NextAutoClosureDiscriminator ;
438+ dc = topLevel-> getParentModule () ;
440439 } else if (auto patternBindingInit = dyn_cast<PatternBindingInitializer>(dc)){
441440 auto patternBinding = patternBindingInit->getBinding ();
442441 node = patternBinding->getInit (patternBindingInit->getBindingIndex ());
@@ -472,12 +471,11 @@ unsigned LocalDiscriminatorsRequest::evaluate(
472471 params = getParameterList (dc);
473472 }
474473
474+ auto startDiscriminator = ctx.getNextDiscriminator (dc);
475475 if (!node && !params && !selfParam)
476- return 0 ;
476+ return startDiscriminator ;
477477
478- SetLocalDiscriminators visitor (
479- expectedNextAutoclosureDiscriminator.value_or (0 )
480- );
478+ SetLocalDiscriminators visitor (startDiscriminator);
481479
482480 // Set local discriminator for the 'self' parameter.
483481 if (selfParam)
@@ -494,9 +492,7 @@ unsigned LocalDiscriminatorsRequest::evaluate(
494492 node.walk (visitor);
495493
496494 unsigned nextDiscriminator = visitor.maxAssignedDiscriminator ();
497- if (expectedNextAutoclosureDiscriminator) {
498- ctx.NextAutoClosureDiscriminator = nextDiscriminator;
499- }
495+ ctx.setMaxAssignedDiscriminator (dc, nextDiscriminator);
500496
501497 // Return the next discriminator.
502498 return nextDiscriminator;
0 commit comments