|
20 | 20 | #define SWIFT_DEMANGLING_DEMANGLE_H
|
21 | 21 |
|
22 | 22 | #include "swift/Demangling/Errors.h"
|
| 23 | +#include "swift/Demangling/ManglingFlavor.h" |
23 | 24 | #include "swift/Demangling/NamespaceMacros.h"
|
24 | 25 | #include "llvm/ADT/StringRef.h"
|
25 | 26 | #include "llvm/Support/Compiler.h"
|
@@ -673,24 +674,27 @@ class [[nodiscard]] ManglingErrorOr {
|
673 | 674 | };
|
674 | 675 |
|
675 | 676 | /// Remangle a demangled parse tree.
|
676 |
| -ManglingErrorOr<std::string> mangleNode(NodePointer root); |
| 677 | +ManglingErrorOr<std::string> |
| 678 | +mangleNode(NodePointer root, |
| 679 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
677 | 680 |
|
678 |
| -using SymbolicResolver = |
679 |
| - llvm::function_ref<Demangle::NodePointer (SymbolicReferenceKind, |
680 |
| - const void *)>; |
| 681 | +using SymbolicResolver = llvm::function_ref<Demangle::NodePointer( |
| 682 | + SymbolicReferenceKind, const void *)>; |
681 | 683 |
|
682 | 684 | /// Remangle a demangled parse tree, using a callback to resolve
|
683 | 685 | /// symbolic references.
|
684 |
| -ManglingErrorOr<std::string> mangleNode(NodePointer root, SymbolicResolver resolver); |
| 686 | +ManglingErrorOr<std::string> |
| 687 | +mangleNode(NodePointer root, SymbolicResolver resolver, |
| 688 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
685 | 689 |
|
686 | 690 | /// Remangle a demangled parse tree, using a callback to resolve
|
687 | 691 | /// symbolic references.
|
688 | 692 | ///
|
689 | 693 | /// The returned string is owned by \p Factory. This means \p Factory must stay
|
690 | 694 | /// alive as long as the returned string is used.
|
691 |
| -ManglingErrorOr<llvm::StringRef> mangleNode(NodePointer root, |
692 |
| - SymbolicResolver resolver, |
693 |
| - NodeFactory &Factory); |
| 695 | +ManglingErrorOr<llvm::StringRef> |
| 696 | +mangleNode(NodePointer root, SymbolicResolver resolver, NodeFactory &Factory, |
| 697 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
694 | 698 |
|
695 | 699 | /// Remangle in the old mangling scheme.
|
696 | 700 | ///
|
@@ -810,9 +814,9 @@ llvm::StringRef makeSymbolicMangledNameStringRef(const char *base);
|
810 | 814 |
|
811 | 815 | /// Produce the mangled name for the nominal type descriptor of a type
|
812 | 816 | /// referenced by its module and type name.
|
813 |
| -std::string mangledNameForTypeMetadataAccessor(llvm::StringRef moduleName, |
814 |
| - llvm::StringRef typeName, |
815 |
| - Node::Kind typeKind); |
| 817 | +std::string mangledNameForTypeMetadataAccessor( |
| 818 | + llvm::StringRef moduleName, llvm::StringRef typeName, Node::Kind typeKind, |
| 819 | + Mangle::ManglingFlavor Flavor = Mangle::ManglingFlavor::Default); |
816 | 820 |
|
817 | 821 | SWIFT_END_INLINE_NAMESPACE
|
818 | 822 | } // end namespace Demangle
|
|
0 commit comments