TypeDecoder: Don't demangle freestanding PackExpansionTypes

This commit is contained in:
Slava Pestov
2023-07-05 16:06:56 -04:00
parent fb14aef32a
commit b471cd308f
5 changed files with 2 additions and 28 deletions

View File

@@ -124,8 +124,6 @@ public:
Type createSILPackType(ArrayRef<Type> eltTypes, bool isElementAddress); Type createSILPackType(ArrayRef<Type> eltTypes, bool isElementAddress);
Type createPackExpansionType(Type patternType, Type countType);
size_t beginPackExpansion(Type countType); size_t beginPackExpansion(Type countType);
void advancePackExpansion(size_t index); void advancePackExpansion(size_t index);

View File

@@ -1106,16 +1106,8 @@ protected:
} }
case NodeKind::PackExpansion: { case NodeKind::PackExpansion: {
if (Node->getNumChildren() < 2) return MAKE_NODE_TYPE_ERROR0(Node,
return MAKE_NODE_TYPE_ERROR(Node, "pack expansion type in unsupported position");
"fewer children (%zu) than required (2)",
Node->getNumChildren());
auto patternType = decodeMangledType(Node->getChild(0), depth + 1);
auto countType = decodeMangledType(Node->getChild(1), depth + 1);
return Builder.createPackExpansionType(patternType.getType(),
countType.getType());
} }
case NodeKind::DependentGenericType: { case NodeKind::DependentGenericType: {

View File

@@ -758,12 +758,6 @@ public:
return nullptr; return nullptr;
} }
const TypeRef *createPackExpansionType(const TypeRef *patternType,
const TypeRef *countType) {
// FIXME: Remote mirrors support for variadic generics.
return nullptr;
}
size_t beginPackExpansion(const TypeRef *countType) { size_t beginPackExpansion(const TypeRef *countType) {
// FIXME: Remote mirrors support for variadic generics. // FIXME: Remote mirrors support for variadic generics.
return 0; return 0;

View File

@@ -355,10 +355,6 @@ Type ASTBuilder::createSILPackType(ArrayRef<Type> eltTypes,
return SILPackType::get(Ctx, extInfo, elements); return SILPackType::get(Ctx, extInfo, elements);
} }
Type ASTBuilder::createPackExpansionType(Type patternType, Type countType) {
return PackExpansionType::get(patternType, countType);
}
size_t ASTBuilder::beginPackExpansion(Type countType) { size_t ASTBuilder::beginPackExpansion(Type countType) {
ActivePackExpansions.push_back(countType); ActivePackExpansions.push_back(countType);

View File

@@ -2021,12 +2021,6 @@ public:
return TYPE_LOOKUP_ERROR_FMT("Lowered SILPackType cannot be demangled"); return TYPE_LOOKUP_ERROR_FMT("Lowered SILPackType cannot be demangled");
} }
TypeLookupErrorOr<BuiltType>
createPackExpansionType(BuiltType patternType, BuiltType countType) const {
// FIXME: Runtime support for variadic generics.
return BuiltType();
}
size_t beginPackExpansion(BuiltType countType) { size_t beginPackExpansion(BuiltType countType) {
if (!countType.isMetadataPack()) { if (!countType.isMetadataPack()) {
swift::fatalError(0, "Pack expansion count type should be a pack\n"); swift::fatalError(0, "Pack expansion count type should be a pack\n");