diff --git a/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs b/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs index a4efe127f5..13aecd79d8 100644 --- a/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs +++ b/ICSharpCode.NRefactory.CSharp/Resolver/OverloadResolution.cs @@ -950,6 +950,8 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver if (member == null) throw new InvalidOperationException(); + if (this.IsExtensionMethodInvocation && member is SpecializedMethod) + ((SpecializedMethod)member).IsExtendedExtensionMethod = true; return new CSharpInvocationResolveResult( this.IsExtensionMethodInvocation ? new TypeResolveResult(member.DeclaringType) : targetResolveResult, member, diff --git a/ICSharpCode.NRefactory/TypeSystem/Implementation/SpecializedMethod.cs b/ICSharpCode.NRefactory/TypeSystem/Implementation/SpecializedMethod.cs index 087bf89f74..5636a5b457 100644 --- a/ICSharpCode.NRefactory/TypeSystem/Implementation/SpecializedMethod.cs +++ b/ICSharpCode.NRefactory/TypeSystem/Implementation/SpecializedMethod.cs @@ -153,6 +153,14 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation accessorOwner = value; } } + + /// + /// Gets/Sets whether the method is an extension method that are being called using extension method syntax. + /// + public bool IsExtendedExtensionMethod { + get; + set; + } public override IMemberReference ToMemberReference() {