Skip to content

Commit 7834a3d

Browse files
redsun82Paolo Tranquilli
authored andcommitted
Swift: expand mangling of ExistentialMetatypeType
1 parent 30242ed commit 7834a3d

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

swift/extractor/mangler/SwiftMangler.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,12 @@ SwiftMangledName SwiftMangler::visitAnyMetatypeType(const swift::AnyMetatypeType
298298
return initMangled(type) << fetch(type->getInstanceType());
299299
}
300300

301+
SwiftMangledName SwiftMangler::visitExistentialMetatypeType(
302+
const swift::ExistentialMetatypeType* type) {
303+
return visitAnyMetatypeType(type)
304+
<< fetch(const_cast<swift::ExistentialMetatypeType*>(type)->getExistentialInstanceType());
305+
}
306+
301307
SwiftMangledName SwiftMangler::visitDependentMemberType(const swift::DependentMemberType* type) {
302308
return initMangled(type) << fetch(type->getBase()) << fetch(type->getAssocType());
303309
}
@@ -353,7 +359,7 @@ SwiftMangledName SwiftMangler::visitOpaqueTypeArchetypeType(
353359
}
354360

355361
SwiftMangledName SwiftMangler::visitOpenedArchetypeType(const swift::OpenedArchetypeType* type) {
356-
auto *env = type->getGenericEnvironment();
362+
auto* env = type->getGenericEnvironment();
357363
llvm::SmallVector<char> uuid;
358364
env->getOpenedExistentialUUID().toString(uuid);
359365
return visitArchetypeType(type) << std::string_view(uuid.data(), uuid.size());

swift/extractor/mangler/SwiftMangler.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class SwiftMangler : private swift::TypeVisitor<SwiftMangler, SwiftMangledName>,
8484
SwiftMangledName visitGenericFunctionType(const swift::GenericFunctionType* type);
8585
SwiftMangledName visitGenericTypeParamType(const swift::GenericTypeParamType* type);
8686
SwiftMangledName visitAnyMetatypeType(const swift::AnyMetatypeType* type);
87+
SwiftMangledName visitExistentialMetatypeType(const swift::ExistentialMetatypeType* type);
8788
SwiftMangledName visitDependentMemberType(const swift::DependentMemberType* type);
8889
SwiftMangledName visitInOutType(const swift::InOutType* type);
8990
SwiftMangledName visitExistentialType(const swift::ExistentialType* type);

0 commit comments

Comments
 (0)