diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp index f0689c129f335..6613424422052 100644 --- a/lib/AST/ASTDumper.cpp +++ b/lib/AST/ASTDumper.cpp @@ -2131,9 +2131,9 @@ namespace { printFlag(!ED->hasBeenBound(), "unbound"); if (ED->hasBeenBound()) { printTypeField(ED->getExtendedType(), Label::optional("extended_type")); - } else { + } else if (auto *extTypeRepr = ED->getExtendedTypeRepr()) { printNameRaw([&](raw_ostream &OS) { - ED->getExtendedTypeRepr()->print(OS); + extTypeRepr->print(OS); }, Label::optional("extended_type")); } printCommonPost(ED); diff --git a/validation-test/compiler_crashers_2_fixed/empty_extension_print.swift b/validation-test/compiler_crashers_2_fixed/empty_extension_print.swift new file mode 100644 index 0000000000000..74d18ab5d483a --- /dev/null +++ b/validation-test/compiler_crashers_2_fixed/empty_extension_print.swift @@ -0,0 +1,2 @@ +// RUN: not %target-swift-frontend %s -dump-parse +extension {}