ReplaceSideEffectsInLvalue replacer =
new ReplaceSideEffectsInLvalue(new JMultiExpression(x.getSourceInfo()));
JExpression newLhs = replacer.accept(x.getLhs());
JExpression operation =
new JBinaryOperation(x.getSourceInfo(), newLhs.getType(), op.getNonAssignmentOf(),
newLhs, x.getRhs());
operation = modifyResultOperation((JBinaryOperation) operation);
// newLhs is cloned below because it was used in operation
JBinaryOperation asg =
new JBinaryOperation(x.getSourceInfo(), newLhs.getType(), JBinaryOperator.ASG, cloner
.cloneExpression(newLhs), operation);
JMultiExpression multiExpr = replacer.getMultiExpr();
if (multiExpr.isEmpty()) {
// just use the split assignment expression