Skip to content

Commit 71e4031

Browse files
committed
AST: Remove PackArchetypeType::getSingletonPackType()
1 parent 5cbdf7a commit 71e4031

File tree

4 files changed

+11
-12
lines changed

4 files changed

+11
-12
lines changed

include/swift/AST/Types.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6355,8 +6355,6 @@ class PackArchetypeType final
63556355
return T->getKind() == TypeKind::PackArchetype;
63566356
}
63576357

6358-
CanTypeWrapper<PackType> getSingletonPackType();
6359-
63606358
private:
63616359
PackArchetypeType(const ASTContext &Ctx, GenericEnvironment *GenericEnv,
63626360
Type InterfaceType, ArrayRef<ProtocolDecl *> ConformsTo,
@@ -6831,6 +6829,9 @@ BEGIN_CAN_TYPE_WRAPPER(PackType, Type)
68316829
static CanPackType get(const ASTContext &ctx, ArrayRef<CanType> elements);
68326830
static CanPackType get(const ASTContext &ctx, CanTupleEltTypeArrayRef elts);
68336831

6832+
static CanTypeWrapper<PackType>
6833+
getSingletonPackExpansion(CanType packParameter);
6834+
68346835
CanType getElementType(unsigned elementNo) const {
68356836
return CanType(getPointer()->getElementType(elementNo));
68366837
}

lib/AST/ASTContext.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3293,11 +3293,6 @@ PackType *PackType::getEmpty(const ASTContext &C) {
32933293
return cast<PackType>(CanType(C.TheEmptyPackType));
32943294
}
32953295

3296-
PackType *PackType::getSingletonPackExpansion(Type param) {
3297-
assert(param->isParameterPack() || param->is<PackArchetypeType>());
3298-
return get(param->getASTContext(), {PackExpansionType::get(param, param)});
3299-
}
3300-
33013296
CanPackType CanPackType::get(const ASTContext &C, ArrayRef<CanType> elements) {
33023297
SmallVector<Type, 8> ncElements(elements.begin(), elements.end());
33033298
return CanPackType(PackType::get(C, ncElements));

lib/AST/ParameterPack.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -460,10 +460,13 @@ PackType *PackType::get(const ASTContext &C,
460460
return get(C, wrappedArgs)->flattenPackTypes();
461461
}
462462

463-
CanPackType PackArchetypeType::getSingletonPackType() {
464-
SmallVector<Type, 1> types;
465-
types.push_back(PackExpansionType::get(this, getReducedShape()));
466-
return CanPackType(PackType::get(getASTContext(), types));
463+
PackType *PackType::getSingletonPackExpansion(Type param) {
464+
assert(param->isParameterPack() || param->is<PackArchetypeType>());
465+
return get(param->getASTContext(), {PackExpansionType::get(param, param)});
466+
}
467+
468+
CanPackType CanPackType::getSingletonPackExpansion(CanType param) {
469+
return CanPackType(PackType::getSingletonPackExpansion(param));
467470
}
468471

469472
bool SILPackType::containsPackExpansionType() const {

lib/IRGen/GenPack.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ irgen::emitPackArchetypeMetadataRef(IRGenFunction &IGF,
177177
if (auto result = IGF.tryGetLocalTypeMetadata(type, request))
178178
return result;
179179

180-
auto packType = type->getSingletonPackType();
180+
auto packType = CanPackType::getSingletonPackExpansion(type);
181181
auto response = emitTypeMetadataPackRef(IGF, packType, request);
182182

183183
IGF.setScopedLocalTypeMetadata(type, response);

0 commit comments

Comments
 (0)