[Issue 20784] New: Assert expression specification needs to be updated
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Wed Apr 29 01:46:28 UTC 2020
    
    
  
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 at puremagic.com
          Reporter: andrej.mitrovich at gmail.com
https://dlang.org/spec/expression.html#assert_expressions
> The 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?
--
    
    
More information about the Digitalmars-d-bugs
mailing list