From f1b1cd5ef4a84d31e97b001a60dbb6d6723bd84c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Sim=C3=B5es?= Date: Wed, 19 Nov 2025 14:17:03 +0000 Subject: [PATCH] Fix encoding generic arrays - Now following ECMA 335 spec instead of forcing VAR type. --- .../Tables/nanoSignaturesTable.cs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/MetadataProcessor.Shared/Tables/nanoSignaturesTable.cs b/MetadataProcessor.Shared/Tables/nanoSignaturesTable.cs index 07fc0e0..08f9500 100644 --- a/MetadataProcessor.Shared/Tables/nanoSignaturesTable.cs +++ b/MetadataProcessor.Shared/Tables/nanoSignaturesTable.cs @@ -437,18 +437,8 @@ public void WriteDataType( { ArrayType array = (ArrayType)typeDefinition; - if (array.ElementType.IsGenericParameter) - { - // ECMA 335 VI.B.4.3 Metadata - writer.WriteByte((byte)NanoCLRDataType.DATATYPE_VAR); - - // OK to use byte here as we won't support more than 0x7F generic parameters - writer.WriteByte((byte)(array.ElementType as GenericParameter).Position); - } - else - { - WriteDataType(array.ElementType, writer, true, expandEnumType, isTypeDefinition); - } + // Recursively encode the element type, which handles generic parameters correctly + WriteDataType(array.ElementType, writer, true, expandEnumType, isTypeDefinition); } return;