Skip to content

Commit 07e8e07

Browse files
committed
AST: Unwrap ExistentialType in LocalArchetypeRequirementCollector::addOpenedExistential()
1 parent e3ff6f0 commit 07e8e07

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

lib/AST/LocalArchetypeRequirementCollector.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ LocalArchetypeRequirementCollector::LocalArchetypeRequirementCollector(
2929
: Context(ctx), OuterSig(sig), Depth(sig.getNextDepth()) {}
3030

3131
void LocalArchetypeRequirementCollector::addOpenedExistential(Type constraint) {
32+
if (auto existential = constraint->getAs<ExistentialType>())
33+
constraint = existential->getConstraintType();
34+
3235
assert(constraint->isConstraintType() ||
3336
constraint->getClassOrBoundGenericClass());
3437
assert(OuterSig || !constraint->hasTypeParameter() &&
@@ -134,10 +137,9 @@ GenericSignature swift::buildGenericSignatureWithCapturedEnvironments(
134137
break;
135138

136139
case GenericEnvironment::Kind::OpenedExistential: {
137-
auto constraint = genericEnv->getOpenedExistentialType();
138-
if (auto existential = constraint->getAs<ExistentialType>())
139-
constraint = existential->getConstraintType()->mapTypeOutOfContext();
140-
collector.addOpenedExistential(constraint);
140+
auto existentialTy = genericEnv->getOpenedExistentialType()
141+
->mapTypeOutOfContext();
142+
collector.addOpenedExistential(existentialTy);
141143
continue;
142144
}
143145
case GenericEnvironment::Kind::OpenedElement: {

0 commit comments

Comments
 (0)