Skip to content

Commit 57f7a88

Browse files
authored
Fix minimize of FieldDefs (#47)
1 parent 285808c commit 57f7a88

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

source/MetadataProcessor.Core/nanoAssemblyBuilder.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,12 @@ private HashSet<MetadataToken> BuildDependencyList(MetadataToken token)
309309
// parameters
310310
foreach (var p in mr.Parameters)
311311
{
312-
if (p.ParameterType.DeclaringType != null)
312+
if (p.ParameterType.IsValueType &&
313+
!p.ParameterType.IsPrimitive)
314+
{
315+
set.Add(p.ParameterType.MetadataToken);
316+
}
317+
else if (p.ParameterType.DeclaringType != null)
313318
{
314319
set.Add(p.ParameterType.DeclaringType.MetadataToken);
315320
}
@@ -387,7 +392,11 @@ private HashSet<MetadataToken> BuildDependencyList(MetadataToken token)
387392
{
388393
set.Add(fd.MetadataToken);
389394
}
390-
395+
else if (fd.FieldType.IsValueType)
396+
{
397+
set.Add(fd.FieldType.MetadataToken);
398+
}
399+
391400
// attributes
392401
foreach (var c in fd.CustomAttributes)
393402
{
@@ -405,7 +414,8 @@ private HashSet<MetadataToken> BuildDependencyList(MetadataToken token)
405414
// return value
406415
if( md.ReturnType.FullName != "System.Void" &&
407416
md.ReturnType.FullName != "System.String" &&
408-
!md.ReturnType.IsArray)
417+
!md.ReturnType.IsArray &&
418+
!md.ReturnType.IsPrimitive)
409419
{
410420
set.Add(md.ReturnType.MetadataToken);
411421
}
@@ -595,7 +605,7 @@ private string TokenToString(MetadataToken token)
595605
output.Append("::");
596606
}
597607

598-
output.Append(mr.FullName);
608+
output.Append(mr.Name);
599609
break;
600610

601611
case TokenType.ModuleRef:
@@ -610,7 +620,7 @@ private string TokenToString(MetadataToken token)
610620
case TokenType.AssemblyRef:
611621
var ar = _tablesContext.AssemblyReferenceTable.Items.FirstOrDefault(i => i.MetadataToken == token);
612622

613-
output.Append($"[{ar.FullName}]");
623+
output.Append($"[{ar.Name}]");
614624
break;
615625

616626
case TokenType.String:

0 commit comments

Comments
 (0)