public override object VisitBaseReferenceExpression(BaseReferenceExpression baseReferenceExpression, object data) { if (resolver.CallingType == null || resolver.CallingType.FullName == "System.Object") return CreateResult (DomReturnType.Void); BaseResolveResult result = new BaseResolveResult (); result.CallingType = resolver.CallingType; result.CallingMember = resolver.CallingMember; if (resolver.CallingType != null) { IType type = null; if (resolver.CallingType.BaseType != null) type = this.resolver.SearchType (resolver.CallingType.BaseType); result.UnresolvedType = result.ResolvedType = type != null ? new DomReturnType (type) : DomReturnType.Object; } return result; }
public NRefactoryParameterDataProvider (TextEditorData editor, NRefactoryResolver resolver, BaseResolveResult resolveResult) { HashSet<string> alreadyAdded = new HashSet<string> (); if (resolveResult.CallingType != null) { IType resolvedType = resolver.Dom.GetType (resolveResult.ResolvedType); foreach (IReturnType rt in resolveResult.CallingType.BaseTypes) { IType baseType = resolver.SearchType (rt); bool includeProtected = DomType.IncludeProtected (resolver.Dom, baseType, resolvedType); if (baseType != null) { foreach (IMethod method in baseType.Methods) { if (!method.IsConstructor) continue; string str = ambience.GetString (method, OutputFlags.IncludeParameters); if (alreadyAdded.Contains (str)) continue; alreadyAdded.Add (str); if (method.IsAccessibleFrom (resolver.Dom, resolver.CallingType, resolver.CallingMember, includeProtected)) methods.Add (method); } } } } }
public override IEnumerable <object> CreateResolveResult(ProjectDom dom, IMember callingMember) { return(BaseResolveResult.CreateResolveResult(dom, callingMember)); }