Skip to content

Commit 9b26ab1

Browse files
committed
AST: Fix latent bug in TypeTransformer::transformPackElementType()
1 parent 245514c commit 9b26ab1

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

include/swift/AST/TypeTransform.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,6 +1176,12 @@ case TypeKind::Id:
11761176
if (transformedPack.getPointer() == element->getPackType().getPointer())
11771177
return element;
11781178

1179+
if (!transformedPack->isParameterPack() &&
1180+
!transformedPack->is<PackArchetypeType>() &&
1181+
!transformedPack->isTypeVariableOrMember()) {
1182+
return transformedPack;
1183+
}
1184+
11791185
return PackElementType::get(transformedPack, element->getLevel());
11801186
}
11811187

lib/AST/ASTContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3883,7 +3883,7 @@ PackElementType::PackElementType(Type packType, unsigned level,
38833883
packType(packType), level(level) {
38843884
assert(packType->isParameterPack() ||
38853885
packType->is<PackArchetypeType>() ||
3886-
packType->is<TypeVariableType>());
3886+
packType->isTypeVariableOrMember());
38873887
assert(level > 0);
38883888
}
38893889

0 commit comments

Comments
 (0)