June 26, 2017 [Issue 7182] Call const or immutable member functions from class invariant | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=7182 Vladimir Panteleev <dlang-bugzilla@thecybershadow.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |dlang-bugzilla@thecybershad | |ow.net Resolution|--- |INVALID --- Comment #2 from Vladimir Panteleev <dlang-bugzilla@thecybershadow.net> --- (In reply to Infiltrator from comment #1) > I think that the issue would instead be with the fact that public functions > (f() in this case) call invariant() before and after they run, which would > result in an infinite loop. Pretty sure your explanation is correct. Although one may argument in favor of making const methods not cause invariant checks, that would mean that e.g. getters are no longer protected by invariants, should something modify the object's state into an invalid one directly (e.g. by writing to fields). -- |
Copyright © 1999-2021 by the D Language Foundation