"A divide assignment operation (`/=`). Right-associative. Any expression may appear on the right-hand side, regardless of precedence. Examples: width /= 2 amount /= exchangeRate" see (`class QuotientOperation`) shared class DivideAssignmentOperation(target, divisor) extends ArithmeticAssignmentOperation() { "The target expression and dividend / numerator." shared ThenElseExpression target; "The divisor / denominator." shared Expression divisor; "The target expression and dividend / numerator." see (`value target`) shared actual ThenElseExpression leftOperand = target; "The divisor / denominator." see (`value divisor`) shared actual Expression rightOperand = divisor; shared actual [ThenElseExpression, Expression] children = [leftOperand, rightOperand]; operator = "/="; shared actual Result transform<out Result>(Transformer<Result> transformer) => transformer.transformDivideAssignmentOperation(this); shared actual void visit(Visitor visitor) => visitor.visitDivideAssignmentOperation(this); shared actual Boolean equals(Object that) { if (is DivideAssignmentOperation that) { return leftOperand==that.leftOperand && rightOperand==that.rightOperand; } else { return false; } } shared actual Integer hash => 31 * (leftOperand.hash + 31*rightOperand.hash); shared DivideAssignmentOperation copy(ThenElseExpression leftOperand = this.leftOperand, Expression rightOperand = this.rightOperand) { value ret = DivideAssignmentOperation(leftOperand, rightOperand); copyExtraInfoTo(ret); return ret; } }