Skip to content

Commit 3d27e6f

Browse files
authored
Fix processing of array parameter type in method minimization (#86)
1 parent faf2a70 commit 3d27e6f

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

source/MetadataProcessor.Core/nanoAssemblyBuilder.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,29 @@ private HashSet<MetadataToken> BuildDependencyList(MetadataToken token)
622622
parameterType = p.ParameterType;
623623
}
624624

625-
if (parameterType.MetadataType == MetadataType.Class)
625+
if (parameterType.IsArray)
626+
{
627+
if (parameterType.DeclaringType != null)
628+
{
629+
set.Add(parameterType.DeclaringType.MetadataToken);
630+
}
631+
else
632+
{
633+
if (parameterType.GetElementType().FullName != "System.Void" &&
634+
parameterType.GetElementType().FullName != "System.String" &&
635+
parameterType.GetElementType().FullName != "System.Object" &&
636+
!parameterType.GetElementType().IsPrimitive)
637+
{
638+
set.Add(parameterType.GetElementType().MetadataToken);
639+
}
640+
}
641+
}
642+
else if (parameterType.MetadataType == MetadataType.Class)
643+
{
644+
set.Add(parameterType.MetadataToken);
645+
}
646+
else if (parameterType.IsValueType &&
647+
!parameterType.IsPrimitive)
626648
{
627649
set.Add(parameterType.MetadataToken);
628650
}

0 commit comments

Comments
 (0)