@@ -79,6 +79,9 @@ namespace {
79
79
bool visitDependentMemberType (CanDependentMemberType type) {
80
80
return false ;
81
81
}
82
+ bool visitPackElementType (CanPackElementType type) {
83
+ return false ;
84
+ }
82
85
83
86
// / Archetype metatypes have non-trivial representation in case
84
87
// / they instantiate to a class metatype.
@@ -351,12 +354,6 @@ namespace {
351
354
return asImpl ().handleAddressOnly (type, props);
352
355
}
353
356
354
- RetTy visitPackElementType (CanPackElementType type,
355
- AbstractionPattern origType,
356
- IsTypeExpansionSensitive_t isSensitive) {
357
- llvm_unreachable (" not implemented for PackElementType" );
358
- }
359
-
360
357
RetTy visitBuiltinRawPointerType (CanBuiltinRawPointerType type,
361
358
AbstractionPattern orig,
362
359
IsTypeExpansionSensitive_t isSensitive) {
@@ -559,6 +556,12 @@ namespace {
559
556
return visitAbstractTypeParamType (type, origType, isSensitive);
560
557
}
561
558
559
+ RetTy visitPackElementType (CanPackElementType type,
560
+ AbstractionPattern origType,
561
+ IsTypeExpansionSensitive_t isSensitive) {
562
+ return visitAbstractTypeParamType (type, origType, isSensitive);
563
+ }
564
+
562
565
Type getConcreteReferenceStorageReferent (Type type,
563
566
AbstractionPattern origType) {
564
567
if (type->isTypeParameter ()) {
@@ -2258,12 +2261,6 @@ namespace {
2258
2261
return handleAddressOnly (packExpansionType, properties);
2259
2262
}
2260
2263
2261
- TypeLowering *visitPackElementType (CanPackElementType packElementType,
2262
- AbstractionPattern origType,
2263
- IsTypeExpansionSensitive_t isSensitive) {
2264
- llvm_unreachable (" not implemented for PackElementType" );
2265
- }
2266
-
2267
2264
TypeLowering *visitBuiltinTupleType (CanBuiltinTupleType type,
2268
2265
AbstractionPattern origType,
2269
2266
IsTypeExpansionSensitive_t isSensitive) {
@@ -3075,7 +3072,7 @@ TypeConverter::computeLoweredRValueType(TypeExpansionContext forExpansion,
3075
3072
}
3076
3073
3077
3074
CanType visitPackElementType (CanPackElementType substPackElementType) {
3078
- llvm_unreachable ( " not implemented for PackElementType " ) ;
3075
+ return substPackElementType ;
3079
3076
}
3080
3077
3081
3078
CanType visitBuiltinTupleType (CanBuiltinTupleType type) {
@@ -4168,6 +4165,10 @@ class HaveDifferentAbstractStructure
4168
4165
CanDependentMemberType type2) {
4169
4166
return false ;
4170
4167
}
4168
+ bool visitPackElementType (CanPackElementType type1,
4169
+ CanPackElementType type2) {
4170
+ return false ;
4171
+ }
4171
4172
4172
4173
// We also need to handle the general case where we have different
4173
4174
// kinds of substitutable types.
0 commit comments