@@ -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