[Issue 1228] Class invariants should not be called before the object is fully constructed
Ary Manzana
ary at esperanto.org.ar
Fri May 11 13:05:56 PDT 2007
d-bugmail at puremagic.com escribió:
> http://d.puremagic.com/issues/show_bug.cgi?id=1228
>
>
>
>
>
> ------- Comment #1 from braddr at puremagic.com 2007-05-11 14:25 -------
> Invariants are checked after every public member function's execution as well,
> so the behavior you're seeing at least meets the spec. Now, I can see some
> arguments for not having invariants checked until construction is complete, but
> that'd be a change in documented behavior.
>
>
Sound reasonable to me, too. You can always refactor to:
class foo {
this() {
Stdout("entering constructor").newline;
barInternal();
Stdout("leaving constructor").newline;
}
void bar() {
barInternal();
}
private void barInternal() {
Stdout("method bar()").newline;
}
invariant {
Stdout("invariant").newline;
}
}
More information about the Digitalmars-d-bugs
mailing list