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

Reply via email to