MATCH: Improve `A CMP 0 ? A : -A` set of patterns to use bitwise_equal_p.
[official-gcc.git] / gcc / testsuite / gdc.test / fail_compilation / covariant_override.d
blob7738770775d45e498f365bf91e4b8b0a832af554
1 /++
2 https://issues.dlang.org/show_bug.cgi?id=21538
4 TEST_OUTPUT:
5 ---
6 fail_compilation/covariant_override.d(23): Error: function `@safe void covariant_override.CI.f(void delegate() @safe dg)` does not override any function, did you mean to override `@safe void covariant_override.I.f(void delegate() @system dg)`?
7 fail_compilation/covariant_override.d(34): Error: function `@safe void covariant_override.CA.f(void delegate() @safe dg)` does not override any function, did you mean to override `@safe void covariant_override.A.f(void delegate() @system dg)`?
8 fail_compilation/covariant_override.d(20): Error: class `covariant_override.CI` interface function `void f(void delegate() @system dg) @safe` is not implemented
9 ---
10 ++/
12 static assert(!is(void delegate() @system : void delegate() @safe));
13 static assert( is(void delegate() @safe : void delegate() @system));
15 interface I
17 void f(void delegate() @system dg) @safe;
20 class CI : I
22 // this overrride should not be legal
23 override void f(void delegate() @safe dg) @safe { }
26 abstract class A
28 void f(void delegate() @system dg) @safe;
31 class CA : A
33 // this overrride should not be legal
34 override void f(void delegate() @safe dg) @safe { }