Skip to content

Commit cf20dd4

Browse files
committed
Add swift_getTypeByMangledNameInEnvironmentInMetadataState runtime function
1 parent 44b99b7 commit cf20dd4

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

stdlib/public/runtime/MetadataLookup.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1689,6 +1689,26 @@ swift_getTypeByMangledNameInEnvironment(
16891689
}).getMetadata();
16901690
}
16911691

1692+
SWIFT_CC(swift) SWIFT_RUNTIME_EXPORT
1693+
const Metadata * _Nullable
1694+
swift_getTypeByMangledNameInEnvironmentInMetadataState(
1695+
size_t metadataState,
1696+
const char *typeNameStart,
1697+
size_t typeNameLength,
1698+
const TargetGenericEnvironment<InProcess> *environment,
1699+
const void * const *genericArgs) {
1700+
llvm::StringRef typeName(typeNameStart, typeNameLength);
1701+
SubstGenericParametersFromMetadata substitutions(environment, genericArgs);
1702+
return swift_getTypeByMangledName((MetadataState)metadataState, typeName,
1703+
genericArgs,
1704+
[&substitutions](unsigned depth, unsigned index) {
1705+
return substitutions.getMetadata(depth, index);
1706+
},
1707+
[&substitutions](const Metadata *type, unsigned index) {
1708+
return substitutions.getWitnessTable(type, index);
1709+
}).getMetadata();
1710+
}
1711+
16921712
SWIFT_CC(swift) SWIFT_RUNTIME_EXPORT
16931713
const Metadata * _Nullable
16941714
swift_getTypeByMangledNameInContext(

0 commit comments

Comments
 (0)