// e.g. x[a] += b
// -> subscript=a, x[subscript], =, x[subscript] + b
// -> subscript=a, methodCall_3(x, "putAt", [subscript, methodCall_2(methodCall_1(x, "getAt", [subscript]), "plus", b)])
Expression subscriptExpression = leftBinExpr.getRightExpression();
subscriptExpression.visit(acg); // value(subscript)
operandStack.box();
int subscriptValueId = compileStack.defineTemporaryVariable("$subscript", ClassHelper.OBJECT_TYPE, true);
// method calls from outer to inner (most inner will be called first):
controller.getCallSiteWriter().prepareCallSite("putAt");