| /** |
| Checks that code still compiles when -preview=dtorfields is enabled by default |
| but issues an appropriate deprecation message. |
| |
| Remove this test when the deprecations period ends, see visit(CtorDeclaration) |
| in semantic3.d |
| |
| TEST_OUTPUT: |
| --- |
| compilable/dtorfields_deprecation.d(30): Deprecation: `dtorfields_deprecation.Pure.this` has stricter attributes than its destructor (`pure`) |
| compilable/dtorfields_deprecation.d(30): The destructor will be called if an exception is thrown |
| compilable/dtorfields_deprecation.d(30): Either make the constructor `nothrow` or adjust the field destructors |
| compilable/dtorfields_deprecation.d(42): Deprecation: `dtorfields_deprecation.NoGC.this` has stricter attributes than its destructor (`@nogc`) |
| compilable/dtorfields_deprecation.d(42): The destructor will be called if an exception is thrown |
| compilable/dtorfields_deprecation.d(42): Either make the constructor `nothrow` or adjust the field destructors |
| compilable/dtorfields_deprecation.d(48): Deprecation: `dtorfields_deprecation.Safe.this` has stricter attributes than its destructor (`@system`) |
| compilable/dtorfields_deprecation.d(48): The destructor will be called if an exception is thrown |
| compilable/dtorfields_deprecation.d(48): Either make the constructor `nothrow` or adjust the field destructors |
| --- |
| **/ |
| |
| struct HasDtor |
| { |
| ~this() {} |
| } |
| |
| struct Pure |
| { |
| HasDtor member; |
| this(int) pure {} |
| } |
| |
| struct Nothrow |
| { |
| HasDtor member; |
| this(int) nothrow {} |
| } |
| |
| struct NoGC |
| { |
| HasDtor member; |
| this(int) @nogc {} |
| } |
| |
| struct Safe |
| { |
| HasDtor member; |
| this(int) @safe {} |
| } |