On Wednesday, 28 June 2017 at 12:34:59 UTC, Moritz Maxeiner wrote:
On Wednesday, 28 June 2017 at 12:17:36 UTC, Enamex wrote:
`out(return > 0, "message")`?
Yes, see [1]
It has the already used `typeof(return)` going for it, though.
A big point against it IMO would be its moving further from
`return`'s
signal that a function scope is exited at that line (instead it
could
be a variable assignment which is meh (usage in a contract check
is OK
since we're already outside the function)).
`out(someCond($), "message")`?
Overloading symbols with context dependent meaning is one more
step into obfuscation.
True.
So using either `out` or `return` or `$` or whatever to always
refer to the return value of the function. Just something
that's already relevant and used instead of `__result`.
Well, `__result` is already implemented and usable, so I would
argue it is thus relevant.
It's not used in the wild yet though :T
R foo(Args...)(Args args) {
out(return > bar && ensured(return), "foo() fudged its
return");
Contracts inside function bodies should not be allowed imho.
[1] http://forum.dlang.org/post/oihbot$134s$1...@digitalmars.com
I was going with the current 'Proposal' syntax in the DIP's
document. There
a more recent proposal here?