Boo.Lang.Compiler.Steps.ProcessMethodBodies.OnReferenceExpression C# (CSharp) Метод

OnReferenceExpression() публичный Метод

public OnReferenceExpression ( ReferenceExpression node ) : void
node Boo.Lang.Compiler.Ast.ReferenceExpression
Результат void
        public override void OnReferenceExpression(ReferenceExpression node)
        {
            if (AlreadyBound(node))
                return;

            IEntity entity = ResolveName(node, node.Name);
            if (null == entity)
            {
                Error(node);
                return;
            }

            // BOO-314 - if we are trying to invoke
            // something, let's make sure it is
            // something callable, otherwise, let's
            // try to find something callable
            if (AstUtil.IsTargetOfMethodInvocation(node)
                && !IsCallableEntity(entity))
            {
                IEntity callable = ResolveCallable(node);
                if (null != callable) entity = callable;
            }

            IMember member = entity as IMember;
            if (null != member)
            {
                if (IsExtensionMethod(member))
                {
                    Bind(node, member);
                    return;
                }
                ResolveMemberInfo(node, member);
                return;
            }

            EnsureRelatedNodeWasVisited(node, entity);
            node.Entity = entity;
            PostProcessReferenceExpression(node);
        }
ProcessMethodBodies