[Issue 6856] Preconditions are not inherited
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Nov 1 05:26:22 PDT 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6856
Leandro Lucarella <llucax at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |llucax at gmail.com
Version|D2 |D1 & D2
--- Comment #2 from Leandro Lucarella <llucax at gmail.com> 2011-11-01 05:25:05 PDT ---
What about this:
extern (C) int printf(char* s, ...);
class X
{
void f()
in { printf("\tX.f() in\n"); }
body {}
}
class Y : X
{
override void f()
in { printf("\tY.f() in\n"); }
body {}
}
class Z : Y
{
override void f()
body {}
}
void main()
{
printf("X x\n");
X xx = new X;
xx.f();
printf("\t---\n");
printf("X y\n");
X xy = new Y;
xy.f();
printf("\t---\n");
printf("X z\n");
X xz = new Z;
xz.f();
printf("\t---\n");
printf("--------------------\n");
printf("Y y\n");
Y yy = new Y;
yy.f();
printf("\t---\n");
printf("Y z\n");
Y yz = new Z;
yz.f();
printf("\t---\n");
printf("--------------------\n");
printf("Z z\n");
Z z = new Z;
z.f();
printf("\t---\n");
}
It prints:
X x
X.f() in
---
X y
X.f() in
---
X z
---
--------------------
Y y
X.f() in
---
Y z
---
--------------------
Z z
---
Shouldn't "Y y" print "Y.f()" if Y can loose the in contract?
Shouldn't "X z" and "Y z" print *something* (probably "X.f()" and "Y.f()"
respectively)?
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list