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

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

@ -418,9 +418,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty @@ -418,9 +418,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
Console.WriteLine(input);
}
catch (TException val)
catch (TException ex)
{
Console.WriteLine(val.Message);
Console.WriteLine(ex.Message);
throw;
}
}
@ -452,9 +452,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty @@ -452,9 +452,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
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;
}
}
@ -465,9 +465,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty @@ -465,9 +465,9 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Pretty
{
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 @@ -729,22 +729,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
type = NullableType.GetUnderlyingType(((TypeWithElementType)type).ElementType);
}
string 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",
_ => null
};
if (name != null)
{
return name;
}
string name;
if (type.IsAnonymousType())
{
name = "anon";
@ -753,13 +738,28 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -753,13 +738,28 @@ namespace ICSharpCode.Decompiler.IL.Transforms
{
name = "ex";
}
else if (type.Name.EndsWith("EventArgs", StringComparison.Ordinal))
{
name = "e";
}
else if (type.IsCSharpNativeIntegerType())
{
name = "num";
}
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
if (name.Length >= 3 && name[0] == 'I' && char.IsUpper(name[1]) && char.IsLower(name[2]))
name = name.Substring(1);

Loading…
Cancel
Save