| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/test16095.d(18): Error: `shared` method `test16095.C.ping` is not callable using a non-shared `a` |
| fail_compilation/test16095.d(28): Error: `shared` method `test16095.S.ping` is not callable using a non-shared `*a` |
| fail_compilation/test16095.d(41): 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 |
| } |