On Friday, 6 February 2015 at 16:22:00 UTC, ketmar wrote:
On Fri, 06 Feb 2015 15:59:04 +0000, Chris wrote:
Hm. But the compiler can check, if the signature is ok. E.g.
"wtf, compiler, are you making fun of me? you KNOW what i mean,
yet you
insisting that i have to please you... ah, fsck it! that shitty
feature
never worth it anyway."
auto foo (int n) { ... }
auto foo (int n, int m) { ... }
// i'm soooo sleepy
contract {
auto foo (int n) {
...
}
auto foo (int n, int m) {
...check for foo(n) that i copipasted here
...and completely forgot about it, 'cause
...that "contract" clause is sooooo far away
...from the function itself...
}
}
and so on.
I like it, if things can be put aside in blocks, like unittest
or debug.
unittest and debug blocks are not parts of function contract,
that's why
they can be separated. they are merely *checks*, not
*prerequisites*.
I would like to try, if it is really so bad. If laziness is an
argument against it, it also applies to in {} and out {}, doesn't
it?