diff --git a/include/swift/Demangling/Demangle.h b/include/swift/Demangling/Demangle.h index fecf5a13ea4..db32dbdbd2d 100644 --- a/include/swift/Demangling/Demangle.h +++ b/include/swift/Demangling/Demangle.h @@ -63,6 +63,7 @@ struct DemangleOptions { bool DisplayStdlibModule = true; bool DisplayObjCModule = true; bool PrintForTypeName = false; + bool ShowAsyncResumePartial = true; /// If this is nonempty, entities in this module name will not be qualified. llvm::StringRef HidingCurrentModule; diff --git a/lib/Demangling/NodePrinter.cpp b/lib/Demangling/NodePrinter.cpp index 669e9288268..3fc9344f10b 100644 --- a/lib/Demangling/NodePrinter.cpp +++ b/lib/Demangling/NodePrinter.cpp @@ -2812,16 +2812,20 @@ NodePointer NodePrinter::print(NodePointer Node, bool asPrefixContext) { Printer << "async function pointer to "; return nullptr; case Node::Kind::AsyncAwaitResumePartialFunction: - Printer << "("; - print(Node->getChild(0)); - Printer << ")"; - Printer << " await resume partial function for "; + if (Options.ShowAsyncResumePartial) { + Printer << "("; + print(Node->getChild(0)); + Printer << ")"; + Printer << " await resume partial function for "; + } return nullptr; case Node::Kind::AsyncSuspendResumePartialFunction: - Printer << "("; - print(Node->getChild(0)); - Printer << ")"; - Printer << " suspend resume partial function for "; + if (Options.ShowAsyncResumePartial) { + Printer << "("; + print(Node->getChild(0)); + Printer << ")"; + Printer << " suspend resume partial function for "; + } return nullptr; }