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; } } }