docs: protected Boolean _hasSideEffects(XBinaryOperation expression, ISideEffectContext context) {
  		if (isReassignmentOperator(expression)) {
  			if (!isLocalExpression(expression.getLeftOperand(), context, false)) {
  				return true;
  			}
  		} else {
  			if (expression.isTypeLiteral() || expression.isPackageFragment()) {
  				return false;
  			}
  			if (hasSideEffects(expression.getLeftOperand(), context)) {
  				return true;
  			}
  		}
  		if (hasSideEffects(expression.getRightOperand(), context)) {
  			return true;
  		}
  		return false;
  	}