| /* |
| REQUIRED_ARGS:-preview=dip1021 |
| TEST_OUTPUT: |
| --- |
| fail_compilation/failob1.d(104): Error: variable `failob1.test1.a1` is left dangling at return |
| fail_compilation/failob1.d(105): Error: variable `failob1.test2.a2` is left dangling at return |
| fail_compilation/failob1.d(107): Error: variable `failob1.test4.s4` is left dangling at return |
| fail_compilation/failob1.d(108): Error: variable `failob1.test5.dg5` is left dangling at return |
| fail_compilation/failob1.d(115): Error: variable `failob1.test12.p12` is left dangling at return |
| --- |
| */ |
| |
| struct S { int i; int* f; } |
| struct T { int i; const(int)* f; } |
| class C { int i; int* f; } |
| |
| #line 100 |
| |
| @live |
| { |
| // Test what is and is not a trackable variable |
| void test1(int[] a1) { } // error |
| void test2(int*[3] a2) { } // error |
| void test3(const int*[3] a) { } // ok |
| void test4(S s4) { } // error |
| void test5(int delegate() dg5) { } // error |
| void test6(const(int*)[3] a) { } // ok |
| void test7(const(int)*[3] a) { } // ok |
| void test8(const(int)* p) { } // ok |
| void test9(T t) { } // ok |
| void test10(C c) { } // ok |
| void test11(int i) { } // ok |
| void test12(int* p12) { } // error |
| } |