Browse Source

Include "base." qualifier as needed (fixes #1123)

Adds BaseReferenceExpression to ThisReferenceExpression target required checks
pull/1124/head
Chicken-Bones 7 years ago
parent
commit
dc58a1b40c
  1. 2
      ICSharpCode.Decompiler.Tests/TestCases/Pretty/FixProxyCalls.cs
  2. 2
      ICSharpCode.Decompiler/CSharp/CallBuilder.cs
  3. 2
      ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

2
ICSharpCode.Decompiler.Tests/TestCases/Pretty/FixProxyCalls.cs

@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.ILPretty @@ -32,7 +32,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.ILPretty
{
protected internal IEnumerable<string> Test2(string test)
{
yield return base.Test(test);
yield return Test(test);
}
}

2
ICSharpCode.Decompiler/CSharp/CallBuilder.cs

@ -210,7 +210,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -210,7 +210,7 @@ namespace ICSharpCode.Decompiler.CSharp
if (method.IsStatic)
requireTarget = !expressionBuilder.IsCurrentOrContainingType(method.DeclaringTypeDefinition) || method.Name == ".cctor";
else
requireTarget = !(target.Expression is ThisReferenceExpression) || method.Name == ".ctor";
requireTarget = !(target.Expression is ThisReferenceExpression || target.Expression is BaseReferenceExpression) || method.Name == ".ctor";
}
bool targetCasted = false;
bool argumentsCasted = false;

2
ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs

@ -196,7 +196,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -196,7 +196,7 @@ namespace ICSharpCode.Decompiler.CSharp
{
var target = TranslateTarget(field, targetInstruction, true);
bool requireTarget = HidesVariableWithName(field.Name)
|| (field.IsStatic ? !IsCurrentOrContainingType(field.DeclaringTypeDefinition) : !(target.Expression is ThisReferenceExpression));
|| (field.IsStatic ? !IsCurrentOrContainingType(field.DeclaringTypeDefinition) : !(target.Expression is ThisReferenceExpression || target.Expression is BaseReferenceExpression));
bool targetCasted = false;
var targetResolveResult = requireTarget ? target.ResolveResult : null;

Loading…
Cancel
Save