private Expression ReduceVariable()
{
// v (op)= r
// ... is reduced into ...
// v = v (op) r
ExpressionType op = GetBinaryOpFromAssignmentOp(NodeType);
Expression r = Expression.MakeBinary(op, Left, Right, false, Method);
LambdaExpression conversion = GetConversion();
if (conversion != null)
{
r = Expression.Invoke(conversion, r);
}
return Expression.Assign(Left, r);
}