private static MethodCallExpression NormalizePredicateArgument( MethodCallExpression callExpression) { int argumentOrdinal; Expression normalized; MethodCallExpression methodCallExpression; if (LinqExpressionNormalizer.HasPredicateArgument(callExpression, out argumentOrdinal) && LinqExpressionNormalizer.TryMatchCoalescePattern(callExpression.Arguments[argumentOrdinal], out normalized)) { methodCallExpression = Expression.Call(callExpression.Object, callExpression.Method, (IEnumerable <Expression>) new List <Expression>((IEnumerable <Expression>)callExpression.Arguments) { [argumentOrdinal] = normalized }); } else { methodCallExpression = callExpression; } return(methodCallExpression); }