if(operator == null){
return makeErroneous(expr, "compiler bug "+expr.getNodeType() + " is not yet supported");
}
OptimisationStrategy optimisationStrategy = operator.getOptimisationStrategy(expr, this);
boolean canOptimise = optimisationStrategy.useJavaOperator();
// only fully optimise if we don't have to access the getter/setter
if(canOptimise && CodegenUtil.isDirectAccessVariable(expr.getTerm())){
JCExpression term = transformExpression(expr.getTerm(), BoxingStrategy.UNBOXED, expr.getTypeModel());
return at(expr).Unary(operator.javacOperator, term);