Skip to content

Commit 802c986

Browse files
committed
Runtime: Relax prohibition on packs in SubstGenericParameterFn implementations
1 parent 79cd915 commit 802c986

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
@@ -3560,8 +3560,7 @@ getSuperclassMetadata(MetadataRequest request, const ClassMetadata *self) {
35603560
auto result = swift_getTypeByMangledName(
35613561
request, superclassName, substitutions.getGenericArgs(),
35623562
[&substitutions](unsigned depth, unsigned index) {
3563-
// FIXME: Variadic generics
3564-
return substitutions.getMetadata(depth, index).getMetadata();
3563+
return substitutions.getMetadata(depth, index).Ptr;
35653564
},
35663565
[&substitutions](const Metadata *type, unsigned index) {
35673566
return substitutions.getWitnessTable(type, index);
@@ -6295,8 +6294,7 @@ swift_getAssociatedTypeWitnessSlowImpl(
62956294
result = swift_getTypeByMangledName(
62966295
request, mangledName, substitutions.getGenericArgs(),
62976296
[&substitutions](unsigned depth, unsigned index) {
6298-
// FIXME: Variadic generics
6299-
return substitutions.getMetadata(depth, index).getMetadata();
6297+
return substitutions.getMetadata(depth, index).Ptr;
63006298
},
63016299
[&substitutions](const Metadata *type, unsigned index) {
63026300
return substitutions.getWitnessTable(type, index);
@@ -6442,8 +6440,7 @@ swift_getAssociatedTypeWitnessRelativeSlowImpl(
64426440
auto result = swift_getTypeByMangledName(
64436441
request, mangledName, substitutions.getGenericArgs(),
64446442
[&substitutions](unsigned depth, unsigned index) {
6445-
// FIXME: Variadic generics
6446-
return substitutions.getMetadata(depth, index).getMetadata();
6443+
return substitutions.getMetadata(depth, index).Ptr;
64476444
},
64486445
[&substitutions](const Metadata *type, unsigned index) {
64496446
return substitutions.getWitnessTable(type, index);

stdlib/public/runtime/MetadataLookup.cpp

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1615,8 +1615,7 @@ class DecodedMetadataBuilder {
16151615
swift_getTypeByMangledName(MetadataState::Complete,
16161616
mangledName, allGenericArgsVec.data(),
16171617
[&substitutions](unsigned depth, unsigned index) {
1618-
// FIXME: Variadic generics
1619-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
1618+
return substitutions.getMetadata(depth, index).Ptr;
16201619
},
16211620
[&substitutions](const Metadata *type, unsigned index) {
16221621
return substitutions.getWitnessTable(type, index);
@@ -2289,8 +2288,7 @@ swift_getTypeByMangledNameInEnvironment(
22892288
MetadataState::Complete, typeName,
22902289
genericArgs,
22912290
[&substitutions](unsigned depth, unsigned index) {
2292-
// FIXME: Variadic generics
2293-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2291+
return substitutions.getMetadata(depth, index).Ptr;
22942292
},
22952293
[&substitutions](const Metadata *type, unsigned index) {
22962294
return substitutions.getWitnessTable(type, index);
@@ -2322,8 +2320,7 @@ swift_getTypeByMangledNameInEnvironmentInMetadataState(
23222320
(MetadataState)metadataState, typeName,
23232321
genericArgs,
23242322
[&substitutions](unsigned depth, unsigned index) {
2325-
// FIXME: Variadic generics
2326-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2323+
return substitutions.getMetadata(depth, index).Ptr;
23272324
},
23282325
[&substitutions](const Metadata *type, unsigned index) {
23292326
return substitutions.getWitnessTable(type, index);
@@ -2354,8 +2351,7 @@ swift_getTypeByMangledNameInContext(
23542351
MetadataState::Complete, typeName,
23552352
genericArgs,
23562353
[&substitutions](unsigned depth, unsigned index) {
2357-
// FIXME: Variadic generics
2358-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2354+
return substitutions.getMetadata(depth, index).Ptr;
23592355
},
23602356
[&substitutions](const Metadata *type, unsigned index) {
23612357
return substitutions.getWitnessTable(type, index);
@@ -2387,8 +2383,7 @@ swift_getTypeByMangledNameInContextInMetadataState(
23872383
(MetadataState)metadataState, typeName,
23882384
genericArgs,
23892385
[&substitutions](unsigned depth, unsigned index) {
2390-
// FIXME: Variadic generics
2391-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2386+
return substitutions.getMetadata(depth, index).Ptr;
23922387
},
23932388
[&substitutions](const Metadata *type, unsigned index) {
23942389
return substitutions.getWitnessTable(type, index);
@@ -2574,8 +2569,7 @@ swift_func_getReturnTypeInfo(const char *typeNameStart, size_t typeNameLength,
25742569
demangler,
25752570
/*substGenericParam=*/
25762571
[&substFn](unsigned depth, unsigned index) {
2577-
// FIXME: Variadic generics
2578-
return substFn.getMetadata(depth, index).getMetadataOrNull();
2572+
return substFn.getMetadata(depth, index).Ptr;
25792573
},
25802574
/*SubstDependentWitnessTableFn=*/
25812575
[&substFn](const Metadata *type, unsigned index) {
@@ -2616,8 +2610,7 @@ swift_func_getParameterTypeInfo(
26162610
demangler,
26172611
/*substGenericParam=*/
26182612
[&substFn](unsigned depth, unsigned index) {
2619-
// FIXME: Variadic generics
2620-
return substFn.getMetadata(depth, index).getMetadataOrNull();
2613+
return substFn.getMetadata(depth, index).Ptr;
26212614
},
26222615
/*SubstDependentWitnessTableFn=*/
26232616
[&substFn](const Metadata *type, unsigned index) {
@@ -2660,8 +2653,7 @@ swift_distributed_getWitnessTables(GenericEnvironmentDescriptor *genericEnv,
26602653
auto error = _checkGenericRequirements(
26612654
genericEnv->getGenericRequirements(), witnessTables,
26622655
[&substFn](unsigned depth, unsigned index) {
2663-
// FIXME: Variadic generics
2664-
return substFn.getMetadata(depth, index).getMetadataOrNull();
2656+
return substFn.getMetadata(depth, index).Ptr;
26652657
},
26662658
[&substFn](const Metadata *type, unsigned index) {
26672659
return substFn.getWitnessTable(type, index);
@@ -2695,8 +2687,7 @@ swift_getOpaqueTypeMetadata(MetadataRequest request,
26952687
return swift_getTypeByMangledName(request.getState(),
26962688
mangledName, arguments,
26972689
[&substitutions](unsigned depth, unsigned index) {
2698-
// FIXME: Variadic generics
2699-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
2690+
return substitutions.getMetadata(depth, index).Ptr;
27002691
},
27012692
[&substitutions](const Metadata *type, unsigned index) {
27022693
return substitutions.getWitnessTable(type, index);
@@ -3138,8 +3129,7 @@ static void _gatherWrittenGenericArgs(
31383129
req.getMangledTypeName(),
31393130
(const void * const *)allGenericArgs.data(),
31403131
[&substitutions](unsigned depth, unsigned index) {
3141-
// FIXME: Variadic generics
3142-
return substitutions.getMetadata(depth, index).getMetadataOrNull();
3132+
return substitutions.getMetadata(depth, index).Ptr;
31433133
},
31443134
[&substitutions](const Metadata *type, unsigned index) {
31453135
return substitutions.getWitnessTable(type, index);

0 commit comments

Comments
 (0)