/*
TEST_OUTPUT:
---
fail_compilation/fail10254.d(18): Error: pure function 'fail10254.foo' cannot call impure function 'fail10254.C.this'
fail_compilation/fail10254.d(18): Error: safe function 'fail10254.foo' cannot call system function 'fail10254.C.this'
fail_compilation/fail10254.d(19): Error: pure function 'fail10254.foo' cannot call impure function 'fail10254.S.this'
fail_compilation/fail10254.d(19): Error: safe function 'fail10254.foo' cannot call system function 'fail10254.S.this'
---
*/

int a;

class C { this() { a = 2; } }
struct S { this(int) { a = 2; } }

void foo() pure @safe
{
    auto c = new C; // This line should be a compilation error.
    auto s = new S(1);
}
