Skip to content

Commit 1778a9f

Browse files
committed
AST: Print opened existential substitutions in ASTPrinter/ASTDumper
1 parent fd1ea3d commit 1778a9f

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

lib/AST/ASTDumper.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4219,10 +4219,13 @@ namespace {
42194219
void visitOpenedArchetypeType(OpenedArchetypeType *T, StringRef label) {
42204220
printArchetypeCommon(T, "opened_archetype_type", label);
42214221

4222-
printFieldQuoted(T->getOpenedExistentialID(), "opened_existential_id");
4222+
auto *env = T->getGenericEnvironment();
4223+
printFieldQuoted(env->getOpenedExistentialUUID(), "opened_existential_id");
42234224

42244225
printArchetypeCommonRec(T);
4225-
printRec(T->getGenericEnvironment()->getOpenedExistentialType(), "opened_existential");
4226+
printRec(env->getOpenedExistentialType(), "opened_existential");
4227+
if (auto subMap = env->getOuterSubstitutions())
4228+
printRec(subMap, "substitutions");
42264229

42274230
printFoot();
42284231
}

lib/AST/ASTPrinter.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6967,8 +6967,12 @@ class TypePrinter : public TypeVisitor<TypePrinter> {
69676967

69686968
void visitOpenedArchetypeType(OpenedArchetypeType *T) {
69696969
if (Options.PrintForSIL) {
6970-
Printer << "@opened(\"" << T->getOpenedExistentialID() << "\", ";
6971-
visit(T->getGenericEnvironment()->getOpenedExistentialType());
6970+
auto *env = T->getGenericEnvironment();
6971+
6972+
Printer << "@opened(\"" << env->getOpenedExistentialUUID() << "\", ";
6973+
auto existentialTy = env->maybeApplyOuterContextSubstitutions(
6974+
env->getOpenedExistentialType());
6975+
visit(existentialTy);
69726976
Printer << ") ";
69736977

69746978
llvm::DenseMap<CanType, Identifier> newAlternativeTypeNames;

0 commit comments

Comments
 (0)