48 lines
762 B
D
48 lines
762 B
D
/* PERMUTE_ARGS:
|
|
* TEST_OUTPUT:
|
|
---
|
|
compilable/future.d(15): Deprecation: @future base class method future.A.msg is being overridden by future.B.msg; rename the latter
|
|
---
|
|
*/
|
|
|
|
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;
|
|
}
|