static NewExpression MutateNew(NewExpression node, IList <Expression> operands) { Type[] types = node.Members == null?node.Constructor.GetParameters().Select(p => p.ParameterType).ToArray() : node.Members.Select(m => m.GetMemberType()).ToArray(); for (int i = 0; i < operands.Count; i++) { operands[i] = ExpressionUtil.CheckNeedConvert(operands[i], types[i]); } return(node.Update(operands)); }
public static BinaryExpression MakeGreaterThanZero(Expression expr) { var zeroExpr = ExpressionUtil.MakeZero(expr.Type); return(Expression.GreaterThan(expr, zeroExpr)); }
static BinaryExpression MutateBinary(BinaryExpression node, IList <Expression> operands) { // After replacing arguments with column expressions there might be a problem with nullable columns. // The following code compensates for this return(ExpressionUtil.MakeBinary(node.NodeType, operands[0], operands[1])); }