/*
TEST_OUTPUT:
---
fail_compilation/fail13120.d(13): Error: pure function 'fail13120.g1.__foreachbody2' cannot call impure function 'fail13120.f1'
fail_compilation/fail13120.d(13): Error: @nogc function 'fail13120.g1.__foreachbody2' cannot call non-@nogc function 'fail13120.f1'
---
*/
void f1() {}

void g1(char[] s) pure @nogc
{
    foreach (dchar dc; s)
        f1();
}

/*
TEST_OUTPUT:
---
fail_compilation/fail13120.d(34): Error: pure function 'fail13120.h2' cannot call impure function 'fail13120.g2!().g2'
fail_compilation/fail13120.d(34): Error: safe function 'fail13120.h2' cannot call system function 'fail13120.g2!().g2'
fail_compilation/fail13120.d(34): Error: @nogc function 'fail13120.h2' cannot call non-@nogc function 'fail13120.g2!().g2'
---
*/
void f2() {}

void g2()(char[] s)
{
    foreach (dchar dc; s)
        f2();
}

void h2() @safe pure @nogc
{
    g2(null);
}
