From 80a36c35d665407331dc50b772a9e701fe72414f Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sun, 3 Oct 2010 12:52:17 +0200 Subject: [PATCH] fixed SD-1627 - Method insight tooltip not displayed --- .../Src/NRefactoryResolver/ResolveVisitor.cs | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/ResolveVisitor.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/ResolveVisitor.cs index 33d01a61ad..11b1187a87 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/ResolveVisitor.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/ResolveVisitor.cs @@ -375,7 +375,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver ResolveResult targetRR = Resolve(memberReferenceExpression.TargetObject); if (targetRR == null) return null; - type = targetRR.ResolvedType; + + type = GetType(targetRR); if (targetRR is NamespaceResolveResult) { return ResolveMemberInNamespace(((NamespaceResolveResult)targetRR).Name, memberReferenceExpression); } else if (type != null) { @@ -393,17 +394,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver } var memberRR = resolver.ResolveMember(type, memberReferenceExpression.MemberName, - memberReferenceExpression.TypeArguments, - NRefactoryResolver.IsInvoked(memberReferenceExpression), - typeRR == null, // allow extension methods only for non-static method calls - targetRR is BaseResolveResult ? (bool?)true : null // allow calling protected members using "base." - ); + memberReferenceExpression.TypeArguments, + NRefactoryResolver.IsInvoked(memberReferenceExpression), + typeRR == null, // allow extension methods only for non-static method calls + targetRR is BaseResolveResult ? (bool?)true : null // allow calling protected members using "base." + ); // MethodGroupResolveResult mgRR = memberRR as MethodGroupResolveResult; -// +// // if (mgRR == null) // mgRR = targetRR as MethodGroupResolveResult; -// +// // if (mgRR != null && !resolver.allowMethodGroupResolveResult) // return CreateMemberResolveResult(mgRR.GetMethodWithEmptyParameterList()); @@ -412,6 +413,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver return null; } + IReturnType GetType(ResolveResult targetRR) + { + if (targetRR.ResolvedType != null) + return targetRR.ResolvedType; + + if (targetRR is MixedResolveResult && ((MixedResolveResult)targetRR).TypeResult != null) + return ((MixedResolveResult)targetRR).TypeResult.ResolvedType; + + return null; + } + ResolveResult ResolveMemberInNamespace(string namespaceName, MemberReferenceExpression mre) { string combinedName;