https://issues.dlang.org/show_bug.cgi?id=14343
--- Comment #1 from Nicolas Sicard <dran...@gmail.com> --- The problem doesn't show with the old operator overloading methods: struct S { int i; immutable(Object) o; void opAddAssign(int j) { i += j; } S opPostInc() { ++i; return this; } void opAssign(S other) {} } unittest { S s; ++s; assert(s.i == 1); s++; assert(s.i == 2); } --