| // https://issues.dlang.org/show_bug.cgi?id=20714 |
| // REQUIRED_ARGS: -de |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail20714.d(19): Deprecation: `struct Adder` implicitly-generated postblit hides copy constructor. |
| fail_compilation/fail20714.d(19): The field postblit will have priority over the copy constructor. |
| fail_compilation/fail20714.d(19): To change this, the postblit should be disabled for `struct Adder` |
| --- |
| */ |
| |
| |
| struct Blitter |
| { |
| int payload; |
| this(this){} |
| } |
| |
| struct Adder |
| { |
| Blitter blitter; |
| this(int payload) {this.blitter.payload = payload;} |
| this(ref Adder rhs) {this.blitter.payload = rhs.blitter.payload + 1;} |
| } |
| |
| void main() |
| { |
| Adder piece1 = 1; |
| auto piece2 = piece1; |
| |
| assert(piece2.blitter.payload == 2); |
| } |