Skip to content

Commit be860a8

Browse files
committed
AST: Fix latent bug in TypeTransformer::transformPackElementType()
1 parent fe31c61 commit be860a8

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
@@ -3879,7 +3879,7 @@ PackElementType::PackElementType(Type packType, unsigned level,
38793879
packType(packType), level(level) {
38803880
assert(packType->isParameterPack() ||
38813881
packType->is<PackArchetypeType>() ||
3882-
packType->is<TypeVariableType>());
3882+
packType->isTypeVariableOrMember());
38833883
assert(level > 0);
38843884
}
38853885

0 commit comments

Comments
 (0)