blob: 4d766cf795660ea7e96ad5d2eae693cbe3913a20 [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/fail10115.d(35): Error: cannot have `out` parameter of type `S` because the default construction is disabled
fail_compilation/fail10115.d(35): Error: cannot have `out` parameter of type `E` because the default construction is disabled
fail_compilation/fail10115.d(35): Error: cannot have `out` parameter of type `U` because the default construction is disabled
fail_compilation/fail10115.d(40): Error: struct `fail10115.S` default construction is disabled
fail_compilation/fail10115.d(41): Error: struct `fail10115.S` default construction is disabled
fail_compilation/fail10115.d(42): Error: union `fail10115.U` default construction is disabled
---
*/
struct S
{
int a;
@disable this();
//this(int) { a = 1; }
//~this() { assert(a !is 0); }
}
enum E : S
{
A = S.init
}
union U
{
S s;
//this(this) { assert (s.a !is 0); }
//~this() { assert (s.a !is 0); }
}
void main()
{
void foo(out S s, out E e, out U u) { }
S[] a;
E[] e;
U[] u;
a.length = 5; // compiles -> NG
e.length = 5; // compiles -> NG
u.length = 5; // compiles -> NG
S[1] x = (S[1]).init;
foo(a[0], // compiles -> NG
e[0], // compiles -> NG
u[0]); // compiles -> NG
}