Browse Source

fixed SD-1627 - Method insight tooltip not displayed

pull/2/head
Siegfried Pammer 15 years ago
parent
commit
80a36c35d6
  1. 28
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/ResolveVisitor.cs

28
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/ResolveVisitor.cs

@ -375,7 +375,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
ResolveResult targetRR = Resolve(memberReferenceExpression.TargetObject); ResolveResult targetRR = Resolve(memberReferenceExpression.TargetObject);
if (targetRR == null) if (targetRR == null)
return null; return null;
type = targetRR.ResolvedType;
type = GetType(targetRR);
if (targetRR is NamespaceResolveResult) { if (targetRR is NamespaceResolveResult) {
return ResolveMemberInNamespace(((NamespaceResolveResult)targetRR).Name, memberReferenceExpression); return ResolveMemberInNamespace(((NamespaceResolveResult)targetRR).Name, memberReferenceExpression);
} else if (type != null) { } else if (type != null) {
@ -393,17 +394,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
} }
var memberRR = resolver.ResolveMember(type, memberReferenceExpression.MemberName, var memberRR = resolver.ResolveMember(type, memberReferenceExpression.MemberName,
memberReferenceExpression.TypeArguments, memberReferenceExpression.TypeArguments,
NRefactoryResolver.IsInvoked(memberReferenceExpression), NRefactoryResolver.IsInvoked(memberReferenceExpression),
typeRR == null, // allow extension methods only for non-static method calls typeRR == null, // allow extension methods only for non-static method calls
targetRR is BaseResolveResult ? (bool?)true : null // allow calling protected members using "base." targetRR is BaseResolveResult ? (bool?)true : null // allow calling protected members using "base."
); );
// MethodGroupResolveResult mgRR = memberRR as MethodGroupResolveResult; // MethodGroupResolveResult mgRR = memberRR as MethodGroupResolveResult;
// //
// if (mgRR == null) // if (mgRR == null)
// mgRR = targetRR as MethodGroupResolveResult; // mgRR = targetRR as MethodGroupResolveResult;
// //
// if (mgRR != null && !resolver.allowMethodGroupResolveResult) // if (mgRR != null && !resolver.allowMethodGroupResolveResult)
// return CreateMemberResolveResult(mgRR.GetMethodWithEmptyParameterList()); // return CreateMemberResolveResult(mgRR.GetMethodWithEmptyParameterList());
@ -412,6 +413,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null; 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) ResolveResult ResolveMemberInNamespace(string namespaceName, MemberReferenceExpression mre)
{ {
string combinedName; string combinedName;

Loading…
Cancel
Save