Skip to content

Commit 2295b1a

Browse files
committed
SIL: Preliminary type lowering support for PackElementType
1 parent 279d4e6 commit 2295b1a

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

lib/SIL/IR/TypeLowering.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ namespace {
7979
bool visitDependentMemberType(CanDependentMemberType type) {
8080
return false;
8181
}
82+
bool visitPackElementType(CanPackElementType type) {
83+
return false;
84+
}
8285

8386
/// Archetype metatypes have non-trivial representation in case
8487
/// they instantiate to a class metatype.
@@ -351,12 +354,6 @@ namespace {
351354
return asImpl().handleAddressOnly(type, props);
352355
}
353356

354-
RetTy visitPackElementType(CanPackElementType type,
355-
AbstractionPattern origType,
356-
IsTypeExpansionSensitive_t isSensitive) {
357-
llvm_unreachable("not implemented for PackElementType");
358-
}
359-
360357
RetTy visitBuiltinRawPointerType(CanBuiltinRawPointerType type,
361358
AbstractionPattern orig,
362359
IsTypeExpansionSensitive_t isSensitive) {
@@ -559,6 +556,12 @@ namespace {
559556
return visitAbstractTypeParamType(type, origType, isSensitive);
560557
}
561558

559+
RetTy visitPackElementType(CanPackElementType type,
560+
AbstractionPattern origType,
561+
IsTypeExpansionSensitive_t isSensitive) {
562+
return visitAbstractTypeParamType(type, origType, isSensitive);
563+
}
564+
562565
Type getConcreteReferenceStorageReferent(Type type,
563566
AbstractionPattern origType) {
564567
if (type->isTypeParameter()) {
@@ -2258,12 +2261,6 @@ namespace {
22582261
return handleAddressOnly(packExpansionType, properties);
22592262
}
22602263

2261-
TypeLowering *visitPackElementType(CanPackElementType packElementType,
2262-
AbstractionPattern origType,
2263-
IsTypeExpansionSensitive_t isSensitive) {
2264-
llvm_unreachable("not implemented for PackElementType");
2265-
}
2266-
22672264
TypeLowering *visitBuiltinTupleType(CanBuiltinTupleType type,
22682265
AbstractionPattern origType,
22692266
IsTypeExpansionSensitive_t isSensitive) {
@@ -3075,7 +3072,7 @@ TypeConverter::computeLoweredRValueType(TypeExpansionContext forExpansion,
30753072
}
30763073

30773074
CanType visitPackElementType(CanPackElementType substPackElementType) {
3078-
llvm_unreachable("not implemented for PackElementType");
3075+
return substPackElementType;
30793076
}
30803077

30813078
CanType visitBuiltinTupleType(CanBuiltinTupleType type) {
@@ -4168,6 +4165,10 @@ class HaveDifferentAbstractStructure
41684165
CanDependentMemberType type2) {
41694166
return false;
41704167
}
4168+
bool visitPackElementType(CanPackElementType type1,
4169+
CanPackElementType type2) {
4170+
return false;
4171+
}
41714172

41724173
// We also need to handle the general case where we have different
41734174
// kinds of substitutable types.

0 commit comments

Comments
 (0)