Skip to content

Commit 59ba3dd

Browse files
committed
Runtime: Relax prohibition on packs in SubstGenericParameterFn implementations
1 parent 6f18a87 commit 59ba3dd

File tree

2 files changed

+13
-26
lines changed

2 files changed

+13
-26
lines changed

stdlib/public/runtime/Metadata.cpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3556,8 +3556,7 @@ getSuperclassMetadata(MetadataRequest request, const ClassMetadata *self) {
35563556
auto result = swift_getTypeByMangledName(
35573557
request, superclassName, substitutions.getGenericArgs(),
35583558
[&substitutions](unsigned depth, unsigned index) {
3559-
// FIXME: Variadic generics
3560-
return substitutions.getMetadata(depth, index).getMetadata();
3559+
return substitutions.getMetadata(depth, index).Ptr;
35613560
},
35623561
[&substitutions](const Metadata *type, unsigned index) {
35633562
return substitutions.getWitnessTable(type, index);
@@ -6291,8 +6290,7 @@ swift_getAssociatedTypeWitnessSlowImpl(
62916290
result = swift_getTypeByMangledName(
62926291
request, mangledName, substitutions.getGenericArgs(),
62936292
[&substitutions](unsigned depth, unsigned index) {
6294-
// FIXME: Variadic generics
6295-
return substitutions.getMetadata(depth, index).getMetadata();
6293+
return substitutions.getMetadata(depth, index).Ptr;
62966294
},
62976295
[&substitutions](const Metadata *type, unsigned index) {
62986296
return substitutions.getWitnessTable(type, index);
@@ -6438,8 +6436,7 @@ swift_getAssociatedTypeWitnessRelativeSlowImpl(
64386436
auto result = swift_getTypeByMangledName(
64396437
request, mangledName, substitutions.getGenericArgs(),
64406438
[&substitutions](unsigned depth, unsigned index) {
6441-
// FIXME: Variadic generics
6442-
return substitutions.getMetadata(depth, index).getMetadata();
6439+
return substitutions.getMetadata(depth, index).Ptr;
64436440
},
64446441
[&substitutions](const Metadata *type, unsigned index) {
64456442
return substitutions.getWitnessTable(type, index);

stdlib/public/runtime/MetadataLookup.cpp

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1624,8 +1624,7 @@ class DecodedMetadataBuilder {
16241624
swift_getTypeByMangledName(MetadataState::Complete,
16251625
mangledName, allGenericArgsVec.data(),
16261626
[&substitutions](unsigned depth, unsigned index) {
1627-
// FIXME: Variadic generics
1628-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
1627+
return substitutions.getMetadata(depth, index).Ptr;
16291628
},
16301629
[&substitutions](const Metadata *type, unsigned index) {
16311630
return substitutions.getWitnessTable(type, index);
@@ -2300,8 +2299,7 @@ swift_getTypeByMangledNameInEnvironment(
23002299
MetadataState::Complete, typeName,
23012300
genericArgs,
23022301
[&substitutions](unsigned depth, unsigned index) {
2303-
// FIXME: Variadic generics
2304-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2302+
return substitutions.getMetadata(depth, index).Ptr;
23052303
},
23062304
[&substitutions](const Metadata *type, unsigned index) {
23072305
return substitutions.getWitnessTable(type, index);
@@ -2333,8 +2331,7 @@ swift_getTypeByMangledNameInEnvironmentInMetadataState(
23332331
(MetadataState)metadataState, typeName,
23342332
genericArgs,
23352333
[&substitutions](unsigned depth, unsigned index) {
2336-
// FIXME: Variadic generics
2337-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2334+
return substitutions.getMetadata(depth, index).Ptr;
23382335
},
23392336
[&substitutions](const Metadata *type, unsigned index) {
23402337
return substitutions.getWitnessTable(type, index);
@@ -2365,8 +2362,7 @@ swift_getTypeByMangledNameInContext(
23652362
MetadataState::Complete, typeName,
23662363
genericArgs,
23672364
[&substitutions](unsigned depth, unsigned index) {
2368-
// FIXME: Variadic generics
2369-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2365+
return substitutions.getMetadata(depth, index).Ptr;
23702366
},
23712367
[&substitutions](const Metadata *type, unsigned index) {
23722368
return substitutions.getWitnessTable(type, index);
@@ -2398,8 +2394,7 @@ swift_getTypeByMangledNameInContextInMetadataState(
23982394
(MetadataState)metadataState, typeName,
23992395
genericArgs,
24002396
[&substitutions](unsigned depth, unsigned index) {
2401-
// FIXME: Variadic generics
2402-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2397+
return substitutions.getMetadata(depth, index).Ptr;
24032398
},
24042399
[&substitutions](const Metadata *type, unsigned index) {
24052400
return substitutions.getWitnessTable(type, index);
@@ -2585,8 +2580,7 @@ swift_func_getReturnTypeInfo(const char *typeNameStart, size_t typeNameLength,
25852580
demangler,
25862581
/*substGenericParam=*/
25872582
[&substFn](unsigned depth, unsigned index) {
2588-
// FIXME: Variadic generics
2589-
return substFn.getMetadata(depth, index).getMetadataOrNull();
2583+
return substFn.getMetadata(depth, index).Ptr;
25902584
},
25912585
/*SubstDependentWitnessTableFn=*/
25922586
[&substFn](const Metadata *type, unsigned index) {
@@ -2627,8 +2621,7 @@ swift_func_getParameterTypeInfo(
26272621
demangler,
26282622
/*substGenericParam=*/
26292623
[&substFn](unsigned depth, unsigned index) {
2630-
// FIXME: Variadic generics
2631-
return substFn.getMetadata(depth, index).getMetadataOrNull();
2624+
return substFn.getMetadata(depth, index).Ptr;
26322625
},
26332626
/*SubstDependentWitnessTableFn=*/
26342627
[&substFn](const Metadata *type, unsigned index) {
@@ -2671,8 +2664,7 @@ swift_distributed_getWitnessTables(GenericEnvironmentDescriptor *genericEnv,
26712664
auto error = _checkGenericRequirements(
26722665
genericEnv->getGenericRequirements(), witnessTables,
26732666
[&substFn](unsigned depth, unsigned index) {
2674-
// FIXME: Variadic generics
2675-
return substFn.getMetadata(depth, index).getMetadataOrNull();
2667+
return substFn.getMetadata(depth, index).Ptr;
26762668
},
26772669
[&substFn](const Metadata *type, unsigned index) {
26782670
return substFn.getWitnessTable(type, index);
@@ -2706,8 +2698,7 @@ swift_getOpaqueTypeMetadata(MetadataRequest request,
27062698
return swift_getTypeByMangledName(request.getState(),
27072699
mangledName, arguments,
27082700
[&substitutions](unsigned depth, unsigned index) {
2709-
// FIXME: Variadic generics
2710-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2701+
return substitutions.getMetadata(depth, index).Ptr;
27112702
},
27122703
[&substitutions](const Metadata *type, unsigned index) {
27132704
return substitutions.getWitnessTable(type, index);
@@ -3149,8 +3140,7 @@ static void _gatherWrittenGenericArgs(
31493140
req.getMangledTypeName(),
31503141
(const void * const *)allGenericArgs.data(),
31513142
[&substitutions](unsigned depth, unsigned index) {
3152-
// FIXME: Variadic generics
3153-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
3143+
return substitutions.getMetadata(depth, index).Ptr;
31543144
},
31553145
[&substitutions](const Metadata *type, unsigned index) {
31563146
return substitutions.getWitnessTable(type, index);

0 commit comments

Comments
 (0)