|
|
@ -334,7 +334,7 @@ namespace ICSharpCode.Decompiler.CSharp |
|
|
|
// settings.AlwaysCastTargetsOfExplicitInterfaceImplementationCalls == true is used in Windows Forms' InitializeComponent methods.
|
|
|
|
// settings.AlwaysCastTargetsOfExplicitInterfaceImplementationCalls == true is used in Windows Forms' InitializeComponent methods.
|
|
|
|
if (method.IsExplicitInterfaceImplementation && (target.Expression is ThisReferenceExpression || settings.AlwaysCastTargetsOfExplicitInterfaceImplementationCalls)) { |
|
|
|
if (method.IsExplicitInterfaceImplementation && (target.Expression is ThisReferenceExpression || settings.AlwaysCastTargetsOfExplicitInterfaceImplementationCalls)) { |
|
|
|
var interfaceMember = method.ExplicitlyImplementedInterfaceMembers.First(); |
|
|
|
var interfaceMember = method.ExplicitlyImplementedInterfaceMembers.First(); |
|
|
|
var castExpression = new CastExpression(expressionBuilder.ConvertType(interfaceMember.DeclaringType), target.Expression); |
|
|
|
var castExpression = new CastExpression(expressionBuilder.ConvertType(interfaceMember.DeclaringType), target.Expression.Detach()); |
|
|
|
methodName = interfaceMember.Name; |
|
|
|
methodName = interfaceMember.Name; |
|
|
|
targetExpr = new MemberReferenceExpression(castExpression, methodName); |
|
|
|
targetExpr = new MemberReferenceExpression(castExpression, methodName); |
|
|
|
typeArgumentList = ((MemberReferenceExpression)targetExpr).TypeArguments; |
|
|
|
typeArgumentList = ((MemberReferenceExpression)targetExpr).TypeArguments; |
|
|
|