| // REQUIRED_ARGS: -o- |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail14486.d(47): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(47): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(48): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(48): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(53): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(53): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(54): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(54): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(59): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(59): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(60): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(60): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(65): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(65): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(66): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(66): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(71): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(71): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(72): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(72): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(77): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(77): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| fail_compilation/fail14486.d(78): Error: the `delete` keyword is obsolete |
| fail_compilation/fail14486.d(78): use `object.destroy()` (and `core.memory.GC.free()` if applicable) instead |
| --- |
| */ |
| |
| class C0a { } |
| class C1a { ~this() {} } |
| |
| class C0b { } |
| class C1b { ~this() {} } |
| |
| struct S0a { } |
| struct S1a { ~this() {} } |
| |
| struct S0b { } |
| struct S1b { ~this() {} } |
| |
| void test1a() @nogc pure @safe |
| { |
| C0a c0; delete c0; // error |
| C1a c1; delete c1; // error |
| } |
| |
| void test1b() nothrow |
| { |
| C0b c0; delete c0; // no error |
| C1b c1; delete c1; // error |
| } |
| |
| void test2a() @nogc pure @safe |
| { |
| S0a* s0; delete s0; // error |
| S1a* s1; delete s1; // error |
| } |
| |
| void test2b() nothrow |
| { |
| S0b* s0; delete s0; // no error |
| S1b* s1; delete s1; // error |
| } |
| |
| void test3a() @nogc pure @safe |
| { |
| S0a[] a0; delete a0; // error |
| S1a[] a1; delete a1; // error |
| } |
| |
| void test3b() nothrow |
| { |
| S0b[] a0; delete a0; // no error |
| S1b[] a1; delete a1; // error |
| } |