Swift: mangle ParameterizedProtocolType

This commit is contained in:
Paolo Tranquilli
2023-03-24 08:59:34 +01:00
parent 92c20be038
commit f6a6958c03
2 changed files with 13 additions and 0 deletions

View File

@@ -379,3 +379,15 @@ SwiftMangledName SwiftMangler::visitReferenceStorageType(const swift::ReferenceS
ret << dispatcher.fetchLabel(type->getReferentType());
return ret;
}
SwiftMangledName SwiftMangler::visitParametrizedProtocolType(
const swift::ParameterizedProtocolType* type) {
auto ret = initMangled(type);
ret << dispatcher.fetchLabel(type->getBaseType());
ret << '<';
for (auto arg : type->getArgs()) {
ret << dispatcher.fetchLabel(arg);
}
ret << '>';
return ret;
}

View File

@@ -89,6 +89,7 @@ class SwiftMangler : private swift::TypeVisitor<SwiftMangler, SwiftMangledName>,
SwiftMangledName visitDynamicSelfType(const swift::DynamicSelfType* type);
SwiftMangledName visitUnboundGenericType(const swift::UnboundGenericType* type);
SwiftMangledName visitReferenceStorageType(const swift::ReferenceStorageType* type);
SwiftMangledName visitParametrizedProtocolType(const swift::ParameterizedProtocolType* type);
private:
static SwiftMangledName initMangled(const swift::TypeBase* type);