| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/fail10254.d(20): Error: `pure` function `fail10254.foo` cannot call impure constructor `fail10254.C.this` |
| fail_compilation/fail10254.d(20): Error: `@safe` function `fail10254.foo` cannot call `@system` constructor `fail10254.C.this` |
| fail_compilation/fail10254.d(15): `fail10254.C.this` is declared here |
| fail_compilation/fail10254.d(21): Error: `pure` function `fail10254.foo` cannot call impure constructor `fail10254.S.this` |
| fail_compilation/fail10254.d(21): Error: `@safe` function `fail10254.foo` cannot call `@system` constructor `fail10254.S.this` |
| fail_compilation/fail10254.d(16): `fail10254.S.this` is declared here |
| --- |
| */ |
| |
| 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); |
| } |