On Wednesday, 30 April 2014 at 16:55:06 UTC, Andrei Alexandrescu
wrote:
Walter and I also discussed "static unittest" a while ago -
yes, another use of static :o).
A static unittest would be evaluated only during compilation,
and would prove things that fall in the realm of static
checking but are not verifiable with traditional typesystem
approach.
That won't enable things we can't do today (there's always
assert(__traits(compiles, ...)) but it's instantly
recognizable, very easy to use, and pushes semantic checking to
a whole new level.
Thoughts?
Andrei
Also, while we're thinking about static unittest, what about
contracts? I've seen Bearophile suggest it quite a few times, and
I agree that it'd be very useful to have contracts that are able
to check a subset of function contracts/object invariants at
compile time.