| /* |
| PERMUTE_ARGS: |
| TEST_OUTPUT: |
| --- |
| fail_compilation/test13536.d(24): Error: field U.sysDg cannot access pointers in @safe code that overlap other fields |
| fail_compilation/test13536.d(24): Error: address of variable `s` assigned to `u` with longer lifetime |
| fail_compilation/test13536.d(25): Error: field U.safeDg cannot access pointers in @safe code that overlap other fields |
| --- |
| */ |
| |
| |
| // https://issues.dlang.org/show_bug.cgi?id=13536 |
| |
| struct S { |
| void sysMethod() @system {} |
| } |
| void fun() @safe { |
| union U { |
| void delegate() @system sysDg; |
| void delegate() @safe safeDg; |
| } |
| U u; |
| S s; |
| u.sysDg = &s.sysMethod; |
| u.safeDg(); |
| } |
| |