On Sunday, 18 August 2013 at 20:35:06 UTC, Walter Bright wrote:
On 8/5/2013 11:27 AM, monarch_dodra wrote:
What about, for example:
assertCTFEable!({
int i = 5;
string s;
while (i--)
s ~= 'a';
assert(s == "aaaaa");
});
I don't believe that is a valid use case because the code being
tested is not accessible from anything other than the test.
I'm not sure what that means. Isn't that the case of all unittest?
In any case, I was just saying the above template was enough for
our needs, and that I don't think a language solution is in
order. Also, I think the:
//----
unittest
{
void dg()
{
BODY OF UNITTEST
}
dg(); //test runtime
assertCTFEable!dg; //test compiletime
}
//----
usecase makes it useful. Although arguably, you could just:
//----
unittest
{
bool dg()
{
BODY OF UNITTEST
return true;
}
dg(); //test runtime
enum a = dg();
or
static assert(dg);
}
//----
But really, I'm just saying why type that when the template does
it pretty well for us, while being self-docuenting?