Consider: int x, y; (true ? x : y) += 5; This code fails with: Error: conditional expression true ? x : y is not a modifiable lvalue When both branches in a ternary expression are lvalues of the same type, the result must be an lvalue.
Fixed dmd 2.037