示例#1
0
        public override void LeaveMethodInvocationExpression(MethodInvocationExpression node)
        {
            var methodInvocationExpression = new MethodInvocationFinder(_inferredUnit).Resolve(node) as MethodInvocationExpression;

            if (methodInvocationExpression != null)
            {
                IEntity entity = methodInvocationExpression.Target.Entity;
                if (IsInstantiationMarker(entity))
                {
                    node.Annotate(InstantiationAnnotation);
                }
                node.Target.Entity = entity;
                int i   = 0;
                int num = Math.Min(((ICollection)node.Arguments).Count, ((ICollection)methodInvocationExpression.Arguments).Count);
                if (num < 0)
                {
                    throw new ArgumentOutOfRangeException("max");
                }
                while (i < num)
                {
                    int index = i;
                    i++;
                    node.Arguments[index].ExpressionType = methodInvocationExpression.Arguments[index].ExpressionType;
                }
            }
        }