Swift: Fix BuiltinFixedArrayType mangling

This commit is contained in:
Jeroen Ketema
2026-04-08 15:32:43 +02:00
parent 5eb8db0d48
commit f7de0abe60
3 changed files with 9 additions and 64 deletions

View File

@@ -202,6 +202,14 @@ SwiftMangledName SwiftMangler::visitBuiltinType(const swift::BuiltinType* type)
return initMangled(type) << type->getTypeName(buffer, /* prependBuiltinNamespace= */ false);
}
SwiftMangledName SwiftMangler::visitBuiltinFixedArrayType(
const swift::BuiltinFixedArrayType* type) {
auto ret = visitBuiltinType(type);
ret << fetch(type->getSize());
ret << fetch(type->getElementType());
return ret;
}
SwiftMangledName SwiftMangler::visitAnyGenericType(const swift::AnyGenericType* type) {
auto ret = initMangled(type);
auto decl = type->getDecl();
@@ -240,9 +248,6 @@ SwiftMangledName SwiftMangler::visitAnyFunctionType(const swift::AnyFunctionType
if (flags.isNonEphemeral()) {
ret << "_nonephermeral";
}
if (flags.isIsolated()) {
ret << "_isolated";
}
if (flags.isSending()) {
ret << "_sending";
}

View File

@@ -71,6 +71,7 @@ class SwiftMangler : private swift::TypeVisitor<SwiftMangler, SwiftMangledName>,
SwiftMangledName visitModuleType(const swift::ModuleType* type);
SwiftMangledName visitTupleType(const swift::TupleType* type);
SwiftMangledName visitBuiltinType(const swift::BuiltinType* type);
SwiftMangledName visitBuiltinFixedArrayType(const swift::BuiltinFixedArrayType* type);
SwiftMangledName visitAnyGenericType(const swift::AnyGenericType* type);
// shouldn't be required, but they forgot to link `NominalType` to its direct superclass

View File

@@ -3,69 +3,8 @@
| Builtin.FPIEEE32 | BuiltinFloatType | getName: | FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 |
| Builtin.FPIEEE64 | BuiltinFloatType | getName: | FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<N, T> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<N, T> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<4, Int> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<N, T> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> |
| Builtin.FixedArray<count, Element> | BuiltinFixedArrayType | getName: | FixedArray<count, Element> | getCanonicalType: | Builtin.FixedArray<count, Element> |
| Builtin.IntLiteral | BuiltinIntegerLiteralType | getName: | IntLiteral | getCanonicalType: | Builtin.IntLiteral |
| Builtin.Job | BuiltinJobType | getName: | Job | getCanonicalType: | Builtin.Job |
| Builtin.NativeObject | BuiltinNativeObjectType | getName: | NativeObject | getCanonicalType: | Builtin.NativeObject |