Sema: Sink DiscriminatorFinder down into DebuggerTestingTransform

This commit is contained in:
Slava Pestov
2020-06-25 18:44:17 -04:00
parent 6e5958f251
commit 3aa33250ec
3 changed files with 29 additions and 33 deletions

View File

@@ -1414,22 +1414,3 @@ void swift::addFixedLayoutAttr(NominalTypeDecl *nominal) {
// Add `@_fixed_layout` to the nominal.
nominal->getAttrs().add(new (C) FixedLayoutAttr(/*Implicit*/ true));
}
Expr *DiscriminatorFinder::walkToExprPost(Expr *E) {
auto *ACE = dyn_cast<AbstractClosureExpr>(E);
if (!ACE)
return E;
unsigned Discriminator = ACE->getDiscriminator();
assert(Discriminator != AbstractClosureExpr::InvalidDiscriminator &&
"Existing closures should have valid discriminators");
if (Discriminator >= NextDiscriminator)
NextDiscriminator = Discriminator + 1;
return E;
}
unsigned DiscriminatorFinder::getNextDiscriminator() {
if (NextDiscriminator == AbstractClosureExpr::InvalidDiscriminator)
llvm::report_fatal_error("Out of valid closure discriminators");
return NextDiscriminator++;
}