http://d.puremagic.com/issues/show_bug.cgi?id=6856
Leandro Lucarella <llu...@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |llu...@gmail.com Version|D2 |D1 & D2 --- Comment #2 from Leandro Lucarella <llu...@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: -------