struct X { bool _x; A opCall(bool x) @property {_x = x;return this;} } void main() { X a; x = false;//the same that x.opCall(false)? } I thought that I could replace these opAssign, but the compiler does not agree with me. But why?