18
18
#ifndef SWIFT_REFLECTION_TYPEREFBUILDER_H
19
19
#define SWIFT_REFLECTION_TYPEREFBUILDER_H
20
20
21
+ #include " swift/Demangling/ManglingFlavor.h"
21
22
#include " swift/Remote/ExternalTypeRefCache.h"
22
23
#include " swift/Remote/MetadataReader.h"
23
24
#include " swift/RemoteInspection/DescriptorFinder.h"
@@ -400,6 +401,10 @@ class TypeRefBuilder {
400
401
TypeRefBuilder (const TypeRefBuilder &other) = delete ;
401
402
TypeRefBuilder &operator =(const TypeRefBuilder &other) = delete ;
402
403
404
+ Mangle::ManglingFlavor getManglingFlavor () {
405
+ return Mangle::ManglingFlavor::Default;
406
+ }
407
+
403
408
private:
404
409
Demangle::Demangler Dem;
405
410
@@ -851,7 +856,7 @@ class TypeRefBuilder {
851
856
}
852
857
853
858
BuiltTypeDecl createTypeDecl (Node *node, std::vector<size_t > paramsPerLevel) {
854
- auto mangling = Demangle::mangleNode (node);
859
+ auto mangling = Demangle::mangleNode (node, getManglingFlavor () );
855
860
if (!mangling.isSuccess ()) {
856
861
return std::nullopt;
857
862
}
@@ -864,7 +869,7 @@ class TypeRefBuilder {
864
869
}
865
870
866
871
BuiltTypeDecl createTypeDecl (Node *node, bool &typeAlias) {
867
- auto mangling = Demangle::mangleNode (node);
872
+ auto mangling = Demangle::mangleNode (node, getManglingFlavor () );
868
873
if (!mangling.isSuccess ()) {
869
874
return std::nullopt;
870
875
}
@@ -876,7 +881,7 @@ class TypeRefBuilder {
876
881
}
877
882
878
883
BuiltProtocolDecl createProtocolDecl (Node *node) {
879
- auto mangling = Demangle::mangleNode (node);
884
+ auto mangling = Demangle::mangleNode (node, getManglingFlavor () );
880
885
if (!mangling.isSuccess ()) {
881
886
return std::nullopt;
882
887
}
@@ -979,7 +984,7 @@ class TypeRefBuilder {
979
984
auto argBegin = args.begin ();
980
985
for (size_t i = 0 ; i < nodes.size (); i++) {
981
986
// Get the mangling for this node
982
- auto mangling = Demangle::mangleNode (nodes[i]);
987
+ auto mangling = Demangle::mangleNode (nodes[i], getManglingFlavor () );
983
988
if (!mangling.isSuccess ()) {
984
989
return nullptr ;
985
990
}
@@ -1022,7 +1027,7 @@ class TypeRefBuilder {
1022
1027
return nullptr ;
1023
1028
}
1024
1029
auto startNode = node->getFirstChild ();
1025
- auto mangling = Demangle::mangleNode (startNode);
1030
+ auto mangling = Demangle::mangleNode (startNode, getManglingFlavor () );
1026
1031
if (!mangling.isSuccess ()) {
1027
1032
return nullptr ;
1028
1033
}
@@ -1107,7 +1112,8 @@ class TypeRefBuilder {
1107
1112
return underlyingTy->subst (*this , subs);
1108
1113
}
1109
1114
1110
- auto mangling = mangleNode (opaqueDescriptor, SymbolicResolver (), Dem);
1115
+ auto mangling = mangleNode (opaqueDescriptor, SymbolicResolver (), Dem,
1116
+ getManglingFlavor ());
1111
1117
if (!mangling.isSuccess ())
1112
1118
return nullptr ;
1113
1119
@@ -2161,7 +2167,8 @@ class TypeRefBuilder {
2161
2167
std::string demangledTypeName =
2162
2168
nodeToString (demangleTypeRef (typeTypeRef));
2163
2169
std::string mangledTypeName;
2164
- auto typeMangling = Demangle::mangleNode (demangleTypeRef (typeTypeRef));
2170
+ auto typeMangling = Demangle::mangleNode (demangleTypeRef (typeTypeRef),
2171
+ getManglingFlavor ());
2165
2172
if (!typeMangling.isSuccess ())
2166
2173
mangledTypeName = " " ;
2167
2174
else
@@ -2256,7 +2263,8 @@ class TypeRefBuilder {
2256
2263
auto typeRoot = nomTypeDescriptorRoot->getChild (0 );
2257
2264
typeName = nodeToString (typeRoot);
2258
2265
2259
- auto typeMangling = Demangle::mangleNode (typeRoot);
2266
+ auto typeMangling =
2267
+ Demangle::mangleNode (typeRoot, Mangle::ManglingFlavor::Default);
2260
2268
if (!typeMangling.isSuccess ())
2261
2269
mangledTypeName = " " ;
2262
2270
else
0 commit comments