digitalmars.D.bugs - [Issue 20784] New: Assert expression specification needs to be updated
- d-bugmail puremagic.com (24/28) Apr 28 2020 https://issues.dlang.org/show_bug.cgi?id=20784
https://issues.dlang.org/show_bug.cgi?id=20784 Issue ID: 20784 Summary: Assert expression specification needs to be updated Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: minor Priority: P1 Component: dlang.org Assignee: nobody puremagic.com Reporter: andrej.mitrovich gmail.com https://dlang.org/spec/expression.html#assert_expressionsThe first AssignExpression must evaluate to true. If it does not, an Assert Failure has occurred and the program enters an Invalid State. Undefined Behavior: Once in an Invalid State the behavior of the continuing execution of the program is undefined.This in theory is true. And https://github.com/dlang/dmd/pull/6896, if merged, would actually make it really true. (It would be great if we got some progress on that PR). However see my next comment:Do not attempt to resume normal execution after an Assert Failure.But then what is the point of `Runtime.extendedModuleUnitTester`? If an application enters an Invalid state then after the very first assertion failure it wouldn't make sense to continue running tests in other modules. But Druntime explicitly supports this feature..AssertExpression has different semantics if it is in a unittest or in contract.The documentation doesn't actually list what the differences are. But maybe it should just link to the contracts page? --
Apr 28 2020