dmd/compiler/test/runnable/future.d
Nick Treleaven b5ddf51ea8
Improve @__future deprecation message (#16447)
Show location of base method.
Remove duplicate content in compilable/future.d.
2024-05-08 10:11:38 +03:00

48 lines
825 B
D

/* PERMUTE_ARGS:
TEST_OUTPUT:
---
runnable/future.d(16): Deprecation: method `future.B.msg` implicitly overrides `@__future` base class method; rename the former
runnable/future.d(11): base method `future.A.msg` defined here
---
*/
class A
{
@__future char msg() { return 'a'; }
}
class B : A
{
char msg() { return 'b'; }
}
class C : B
{
override char msg() { return 'c'; }
}
class D : A
{
override char msg() { return 'd'; }
}
int main()
{
auto a = new A();
assert(a.msg() == 'a');
auto b = new B();
assert(b.msg() == 'b');
auto c = new C();
assert(c.msg() == 'c');
auto d = new D();
assert(d.msg() == 'd');
assert(b.A.msg() == 'a');
auto ba = cast(A)b;
assert(ba.msg() == 'a');
auto da = cast(A)d;
assert(da.msg() == 'd');
return 0;
}