On Wednesday, 30 April 2014 at 17:03:58 UTC, Atila Neves wrote:
On Wednesday, 30 April 2014 at 16:57:13 UTC, Meta wrote:
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
There's also
unittest
{
static assert(...);
}
I've been doing this a lot lately. Since I wrote a unit test
library I use that for all my unit tests, but the compilation
ones are usually implementation details that don't need
external tests. I started adding static asserts to the file
that needed them but got lost in what was implementation and
what was a test so I started wrapping all the static asserts in
unittest blocks. Works for me.
Atila
Having said that, I did think (and probably will) of writing a
staticEquals for unit-threaded so at least I don't have to keep
building up the string to print out for myself every time.
Atila