Push ArchetypeType's API down to subclasses.

And clean up code that conditionally works only with certain kinds of archetype along the way.
This commit is contained in:
Joe Groff
2018-12-12 13:26:16 -08:00
parent 4f0f11f6bb
commit 89979137fc
37 changed files with 265 additions and 328 deletions

View File

@@ -3350,10 +3350,8 @@ namespace {
Type type = CS.getType(expr);
if (type->hasOpenedExistential()) {
type = type.transform([&](Type type) -> Type {
if (auto archetype = type->getAs<ArchetypeType>())
if (auto existentialType = archetype->getOpenedExistentialType())
return existentialType;
if (auto archetype = type->getAs<OpenedArchetypeType>())
return archetype->getOpenedExistentialType();
return type;
});
CS.setType(expr, type);