From a72b135df54226bd3b0574fe62251badaccdeea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Fri, 8 Feb 2013 07:17:25 +0100 Subject: [PATCH] Changed C# invocation result that the reduced extension method has it's own property. --- .../Resolver/CSharpInvocationResolveResult.cs | 8 ++++++++ .../Resolver/OverloadResolution.cs | 9 +++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Resolver/CSharpInvocationResolveResult.cs b/ICSharpCode.NRefactory.CSharp/Resolver/CSharpInvocationResolveResult.cs index 3ef49d921c..f6b590cf3d 100644 --- a/ICSharpCode.NRefactory.CSharp/Resolver/CSharpInvocationResolveResult.cs +++ b/ICSharpCode.NRefactory.CSharp/Resolver/CSharpInvocationResolveResult.cs @@ -48,6 +48,14 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver public readonly bool IsExpandedForm; readonly IList argumentToParameterMap; + + /// + /// If IsExtensionMethodInvocation is true this property holds the reduced method. + /// + public IMethod ReducedMethod { + get; + internal set; + } public CSharpInvocationResolveResult( ResolveResult targetResult, IParameterizedMember member, diff --git a/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs b/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs index 59e6974130..242da1843f 100644 --- a/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs +++ b/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs @@ -949,10 +949,8 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver IParameterizedMember member = GetBestCandidateWithSubstitutedTypeArguments(); if (member == null) throw new InvalidOperationException(); - - if (this.IsExtensionMethodInvocation && member is IMethod) - member =new ReducedExtensionMethod ((IMethod)member); - return new CSharpInvocationResolveResult( + + var result = new CSharpInvocationResolveResult( this.IsExtensionMethodInvocation ? new TypeResolveResult(member.DeclaringType) : targetResolveResult, member, GetArgumentsWithConversions(targetResolveResult, member), @@ -963,6 +961,9 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver argumentToParameterMap: this.GetArgumentToParameterMap(), initializerStatements: initializerStatements, returnTypeOverride: returnTypeOverride); + if (this.IsExtensionMethodInvocation && member is IMethod) + result.ReducedMethod = new ReducedExtensionMethod ((IMethod)member); + return result; } #endregion }