Statement Unittest [DRAFT]
Paul Backus
snarwin at gmail.com
Tue Oct 15 15:56:42 UTC 2024
On Tuesday, 15 October 2024 at 14:37:24 UTC, monkyyy wrote:
> https://gist.github.com/crazymonkyyy/2afa7ae1402cd246fb98bdb86dd19605
For "Prior Work", I'd say the most obvious thing to cite is the
shortened syntax for `in`, `out`, and `invariant` contracts:
```d
// Short versions
in (n > 0);
out (ret; ret !is null);
invariant (start <= end);
// Long versions
in { assert(n > 0); }
out (ret) { assert(ret !is null); }
invariant { assert( start <= end); }
```
Spec links:
* [Function contracts][1]
* [Struct invariants][2]
* [Class invariants][3]
[1]: https://dlang.org/spec/function.html#contracts
[2]: https://dlang.org/spec/struct.html#Invariant
[3]: https://dlang.org/spec/class.html#invariants
More information about the dip.development
mailing list