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?

Reply via email to