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

ResolveAmbiguousLValue() приватный Метод

private ResolveAmbiguousLValue ( Expression sourceNode, Ambiguous candidates, Expression rvalue ) : IEntity
sourceNode Expression
candidates Ambiguous
rvalue Expression
Результат IEntity
        private IEntity ResolveAmbiguousLValue(Expression sourceNode, Ambiguous candidates, Expression rvalue)
        {
            if (!candidates.AllEntitiesAre(EntityType.Property)) return null;

            IEntity[] entities = candidates.Entities;
            IEntity[] getters = GetSetMethods(entities);
            ExpressionCollection args = new ExpressionCollection();
            args.Add(rvalue);
            IEntity found = GetCorrectCallableReference(sourceNode, args, getters);
            if (null != found && EntityType.Method == found.EntityType)
            {
                IProperty property = (IProperty)entities[GetIndex(getters, found)];
                BindProperty(sourceNode, property);
                return property;
            }
            return null;
        }
ProcessMethodBodies