On 09.05.2017 23:39, Guillaume Boucher wrote:
On Tuesday, 9 May 2017 at 03:06:37 UTC, Timon Gehr wrote:
If you are interested in static foreach making it into the language,
please play with the implementation and tell me how to break it.

Code:

void main() {
    void f() { idonotexist(); }
    static foreach(j;0..0) {
        f();
    }
}


Output:

test_staticforeach.d(3): Error: undefined identifier 'idonotexist'
Statement::blockExit(0x7f38d5cd35e0)
static foreach (j; __error)
{
f();
}

core.exception.AssertError@ddmd/blockexit.d(90): Assertion failure
----------------
...

Thanks! (It's a known issue though: https://github.com/tgehr/dmd/blob/static-foreach/test_staticforeach.d#L330.)

I guess the problem is that I do not propagate the error condition properly, but I'm not sure how to do it. (In my frontend, error handling control flow is automated almost completely.)

Reply via email to