Skip to content

Commit 9cea8d0

Browse files
authored
Merge pull request #246 from Bip901/fix/rename-exclusions
Avoid renaming classes that are nested within critical classes, and compiler generated properties/fields
2 parents 5a2a517 + 2063e12 commit 9cea8d0

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

src/BitMono.Core/Renaming/Renamer.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,38 +28,52 @@ public string RenameUnsafely()
2828
var randomStringThree = strings[_randomNext(0, strings.Length - 1)];
2929
return $"{randomStringTwo} {randomStringOne}.{randomStringThree}";
3030
}
31+
32+
private bool ShouldRenameType(TypeDefinition? typeDefinition)
33+
{
34+
return typeDefinition == null || (_nameCriticalAnalyzer.NotCriticalToMakeChanges(typeDefinition) && !typeDefinition.IsExplicitLayout);
35+
}
36+
3137
public void Rename(IMetadataMember member)
3238
{
3339
if (member is TypeDefinition type)
3440
{
35-
if (_nameCriticalAnalyzer.NotCriticalToMakeChanges(type))
41+
if (ShouldRenameType(type) && ShouldRenameType(type.DeclaringType))
3642
{
3743
type.Name = RenameUnsafely();
3844
}
3945
}
4046
if (member is MethodDefinition method)
4147
{
42-
if (_nameCriticalAnalyzer.NotCriticalToMakeChanges(method))
48+
if (_nameCriticalAnalyzer.NotCriticalToMakeChanges(method) && ShouldRenameType(method.DeclaringType))
4349
{
4450
method.Name = RenameUnsafely();
4551
}
4652
}
4753
if (member is FieldDefinition field)
54+
{
55+
if (!field.IsCompilerGenerated() && ShouldRenameType(field.DeclaringType))
4856
{
4957
field.Name = RenameUnsafely();
58+
}
5059
}
5160
if (member is ParameterDefinition parameter)
61+
{
62+
if (!parameter.IsCompilerGenerated())
5263
{
5364
parameter.Name = RenameUnsafely();
65+
}
5466
}
5567
}
68+
5669
public void Rename(params IMetadataMember[] members)
5770
{
5871
for (var i = 0; i < members.Length; i++)
5972
{
6073
Rename(members[i]);
6174
}
6275
}
76+
6377
public void RemoveNamespace(IMetadataMember member)
6478
{
6579
if (member is TypeDefinition type)
@@ -87,8 +101,9 @@ public void RemoveNamespace(IMetadataMember member)
87101
}
88102
}
89103
}
104+
90105
public void RemoveNamespace(params IMetadataMember[] members)
91106
{
92107
members.ForEach(RemoveNamespace);
93108
}
94-
}
109+
}

0 commit comments

Comments
 (0)