Browse Source

Sightly improve variable naming of known types such as EventArgs and Exceptions

pull/3416/head
Siegfried Pammer 4 months ago
parent
commit
355a039b59
  1. 12
      ICSharpCode.Decompiler.Tests/TestCases/ILPretty/GuessAccessors.cs
  2. 12
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExceptionHandling.cs
  3. 34
      ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs

12
ICSharpCode.Decompiler.Tests/TestCases/ILPretty/GuessAccessors.cs

@ -50,9 +50,9 @@ namespace ClassLibrary1
//IL_00e1: Expected O, but got Unknown //IL_00e1: Expected O, but got Unknown
//IL_00e1: Expected O, but got Unknown //IL_00e1: Expected O, but got Unknown
UnknownGenericClass<UnknownEventArgs> val = new UnknownGenericClass<UnknownEventArgs>(); UnknownGenericClass<UnknownEventArgs> val = new UnknownGenericClass<UnknownEventArgs>();
UnknownEventArgs val2 = (val.UnknownProperty = val.UnknownProperty); UnknownEventArgs e = (val.UnknownProperty = val.UnknownProperty);
List<object> list = new List<object> { List<object> list = new List<object> {
val[((object)val2).GetHashCode()] ?? "", val[((object)e).GetHashCode()] ?? "",
val.NotProperty, val.NotProperty,
val.get_NotPropertyWithGeneric<string>(42), val.get_NotPropertyWithGeneric<string>(42),
val[42], val[42],
@ -61,10 +61,10 @@ namespace ClassLibrary1
}; };
val.OnEvent += Instance_OnEvent; val.OnEvent += Instance_OnEvent;
val.OnEvent -= Instance_OnEvent; val.OnEvent -= Instance_OnEvent;
UnknownEventArgs val3 = val[(UnknownEventArgs)null]; UnknownEventArgs e2 = val[(UnknownEventArgs)null];
val[new UnknownEventArgs()] = val3; val[new UnknownEventArgs()] = e2;
UnknownEventArgs val4 = val[new UnknownEventArgs(), new UnknownEventArgs()]; UnknownEventArgs e3 = val[new UnknownEventArgs(), new UnknownEventArgs()];
val[new UnknownEventArgs(), new UnknownEventArgs()] = val4; val[new UnknownEventArgs(), new UnknownEventArgs()] = e3;
} }
public void MethodUnknownStatic() public void MethodUnknownStatic()

12
ICSharpCode.Decompiler.Tests/TestCases/Pretty/ExceptionHandling.cs

@ -418,9 +418,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{ {
Console.WriteLine(input); Console.WriteLine(input);
} }
catch (TException val) catch (TException ex)
{ {
Console.WriteLine(val.Message); Console.WriteLine(ex.Message);
throw; throw;
} }
} }
@ -452,9 +452,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{ {
Console.WriteLine(input); Console.WriteLine(input);
} }
catch (TException val) when (val.Message.Contains("Test")) catch (TException ex) when (ex.Message.Contains("Test"))
{ {
Console.WriteLine(val.Message); Console.WriteLine(ex.Message);
throw; throw;
} }
} }
@ -465,9 +465,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{ {
Console.WriteLine(input); Console.WriteLine(input);
} }
catch (TException val) when (val.Message.Contains("Test")) catch (TException ex) when (ex.Message.Contains("Test"))
{ {
Console.WriteLine("{0} {1}", val, val.ToString()); Console.WriteLine("{0} {1}", ex, ex.ToString());
} }
} }

34
ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs

@ -729,22 +729,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
type = NullableType.GetUnderlyingType(((TypeWithElementType)type).ElementType); type = NullableType.GetUnderlyingType(((TypeWithElementType)type).ElementType);
} }
string name = type.Kind switch { string name;
TypeKind.Array => "array",
TypeKind.Pointer => "ptr",
TypeKind.TypeParameter => "val",
TypeKind.Unknown => "val",
TypeKind.Dynamic => "val",
TypeKind.ByReference => "reference",
TypeKind.Tuple => "tuple",
TypeKind.NInt => "num",
TypeKind.NUInt => "num",
_ => null
};
if (name != null)
{
return name;
}
if (type.IsAnonymousType()) if (type.IsAnonymousType())
{ {
name = "anon"; name = "anon";
@ -753,13 +738,28 @@ namespace ICSharpCode.Decompiler.IL.Transforms
{ {
name = "ex"; name = "ex";
} }
else if (type.Name.EndsWith("EventArgs", StringComparison.Ordinal))
{
name = "e";
}
else if (type.IsCSharpNativeIntegerType()) else if (type.IsCSharpNativeIntegerType())
{ {
name = "num"; name = "num";
} }
else if (!typeNameToVariableNameDict.TryGetValue(type.FullName, out name)) else if (!typeNameToVariableNameDict.TryGetValue(type.FullName, out name))
{ {
name = type.Name; name = type.Kind switch {
TypeKind.Array => "array",
TypeKind.Pointer => "ptr",
TypeKind.TypeParameter => "val",
TypeKind.Unknown => "val",
TypeKind.Dynamic => "val",
TypeKind.ByReference => "reference",
TypeKind.Tuple => "tuple",
TypeKind.NInt => "num",
TypeKind.NUInt => "num",
_ => type.Name
};
// remove the 'I' for interfaces // remove the 'I' for interfaces
if (name.Length >= 3 && name[0] == 'I' && char.IsUpper(name[1]) && char.IsLower(name[2])) if (name.Length >= 3 && name[0] == 'I' && char.IsUpper(name[1]) && char.IsLower(name[2]))
name = name.Substring(1); name = name.Substring(1);

Loading…
Cancel
Save