ResolveMemberAccess() public method

public ResolveMemberAccess ( ResolveResult target, string identifier, IList typeArguments, NameLookupMode lookupMode = NameLookupMode.Expression ) : ResolveResult
target ResolveResult
identifier string
typeArguments IList
lookupMode NameLookupMode
return ResolveResult
		public override ResolveResult Resolve(CSharpResolver resolver)
		{
			ResolveResult targetRR = target.Resolve(resolver);
			if (targetRR.IsError)
				return targetRR;
			IList<IType> typeArgs = typeArguments.Resolve(resolver.CurrentTypeResolveContext);
			return resolver.ResolveMemberAccess(targetRR, identifier, typeArgs, lookupMode);
		}
		public ResolveResult DoResolve(ITypeResolveContext context)
		{
			ResolveResult targetRR = target.DoResolve(context);
			if (targetRR.IsError)
				return targetRR;
			CSharpResolver r = new CSharpResolver(context);
			r.CurrentTypeDefinition = parentTypeDefinition != null ? parentTypeDefinition.GetCompoundClass() : null;
			r.UsingScope = parentUsingScope;
			IType[] typeArgs = new IType[typeArguments.Count];
			for (int i = 0; i < typeArgs.Length; i++) {
				typeArgs[i] = typeArguments[i].Resolve(context);
			}
			return r.ResolveMemberAccess(targetRR, identifier, typeArgs, false);
		}
		public override ResolveResult Resolve(CSharpResolver resolver)
		{
			ResolveResult targetRR = target.Resolve(resolver);
			if (targetRR.IsError)
				return targetRR;
			IList<IType> typeArgs = typeArguments.Resolve(resolver.CurrentTypeResolveContext);
			using (var busyLock = BusyManager.Enter(this)) {
				if (busyLock.Success) {
					return resolver.ResolveMemberAccess(targetRR, identifier, typeArgs, lookupMode);
				} else {
					// This can happen for "class Test : $Test.Base$ { public class Base {} }":
					return ErrorResolveResult.UnknownError; // don't cache this error
				}
			}
		}
        public ResolveResult DoResolve(ITypeResolveContext context)
        {
            ResolveResult targetRR = target.DoResolve(context);

            if (targetRR.IsError)
            {
                return(targetRR);
            }
            CSharpResolver r = new CSharpResolver(context);

            r.CurrentTypeDefinition = parentTypeDefinition != null?parentTypeDefinition.GetCompoundClass() : null;

            r.UsingScope = parentUsingScope;
            IType[] typeArgs = new IType[typeArguments.Count];
            for (int i = 0; i < typeArgs.Length; i++)
            {
                typeArgs[i] = typeArguments[i].Resolve(context);
            }
            return(r.ResolveMemberAccess(targetRR, identifier, typeArgs, false));
        }
		public override ResolveResult Resolve(CSharpResolver resolver)
		{
			ResolveResult rr;
			if (targetType != null)
				rr = new TypeResolveResult(targetType.Resolve(resolver.CurrentTypeResolveContext));
			else
				rr = targetExpression.Resolve(resolver);
			return resolver.ResolveMemberAccess(rr, memberName, typeArguments.Resolve(resolver.CurrentTypeResolveContext));
		}