| /* |
| REQUIRED_ARGS: |
| PERMUTE_ARGS: |
| TEST_OUTPUT: |
| --- |
| fail_compilation/test16095.d(20): Error: shared method test16095.C.ping is not callable using a non-shared a |
| fail_compilation/test16095.d(30): Error: shared method test16095.S.ping is not callable using a non-shared *a |
| fail_compilation/test16095.d(43): Error: mutable method test16095.Foo.flip is not callable using a immutable foo |
| --- |
| */ |
| // https://issues.dlang.org/show_bug.cgi?id=16095 |
| |
| class C |
| { |
| void ping() shared; |
| } |
| |
| void test1(C a) |
| { |
| (&a.ping)(); // error |
| } |
| |
| struct S |
| { |
| void ping() shared; |
| } |
| |
| void test2(S* a) |
| { |
| (&a.ping)(); // error |
| } |
| |
| struct Foo { |
| bool flag; |
| void flip() { |
| flag = true; |
| } |
| } |
| |
| void test3() |
| { |
| immutable Foo foo; |
| (&foo.flip)(); // error |
| } |