On 17.04.22 15:06, wjoe wrote:
On the matter of undefined behavior. Technically a program is in
undefined behavior land after throwing an error, thus every unittest
that continues after assertThrown is therefore nonsense code, is it not ?
Yes.
Failing asserts are a messy part of the language. They are supposed to be:
1) not catchable, because they indicate a bug in the program;
2) catchable in order to be testable;
3) assumed impossible for optimization purposes.
Those goals are at odds with each other, and I don't think the spec
manages to consolidate them.
But mutating `immutable` data is not messy. It's simply not allowed.