On 7/14/21 11:27 AM, Tejas wrote: > the compiler error should have been a dead giveaway > that opIndex was returning a _constant_ value
I know you mean "rvalue" but if I may be unnecessarily pedantic, an rvalue can indeed be mutated:
struct A { int i; void mutate() { i = 42; import std.stdio; writeln("I am not constant. :)"); } } struct B { auto opUnary(string op)() { return A(); } } void main() { auto b = B(); (++b).mutate(); // <-- Mutating an rvalue } Ali