/* TEST_OUTPUT: --- fail_compilation/fail302.d(23): Error: cannot implicitly convert expression `1` of type `int` to `Bar` fail_compilation/fail302.d(23): `bar = 1` is the first assignment of `bar` therefore it represents its initialization fail_compilation/fail302.d(23): `opAssign` methods are not used for initialization, but for subsequent assignments --- */ struct Bar { uint num; Bar opAssign(uint otherNum) { num = otherNum; return this; } } void main() { Bar bar = 1; // disallow because construction is not assignment auto x = bar.num; }