[Issue 7337] subclasses without invariants don't check basisclass invariant after method
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Tue Jul 29 14:50:20 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=7337
--- Comment #4 from Adrien Pensart <crunchengine at gmail.com> ---
I retried to fix this some month ago in days, but i'm not comfortable at all
with dmd internals and i didn't succeed...
it could take weeks for me to resolve this...
i started writing a testcase into runnable/testinvariant.d :
/***************************************************/
// 7337
void test7337()
{
class A
{
static uint invariantStatus;
public void foo()
in
{
assert(invariantStatus == 0);
}
out
{
assert(invariantStatus == 2);
}
body
{
printf("in A.foo : %d\n", invariantStatus);
assert(invariantStatus == 1);
}
invariant()
{
printf("in A invariant\n");
invariantStatus++;
}
}
class B : A
{
override public void foo()
{
printf("in B.foo : %d\n", invariantStatus);
}
}
A a = new A();
a.foo();
A.invariantStatus = 0;
B b = new B();
b.foo();
}
--
More information about the Digitalmars-d-bugs
mailing list