Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gdc.test/fail_compilation/fail9665b.d @ 152:2b5abeee2509
update gcc11
author | anatofuz |
---|---|
date | Mon, 25 May 2020 07:50:57 +0900 |
parents | 1830386684a0 |
children |
line wrap: on
line source
/***************************************************/ // with disable this() struct struct X { @disable this(); this(int) {} } /+ TEST_OUTPUT: --- fail_compilation/fail9665b.d(32): Error: one path skips field x2 fail_compilation/fail9665b.d(33): Error: one path skips field x3 fail_compilation/fail9665b.d(35): Error: one path skips field x5 fail_compilation/fail9665b.d(36): Error: one path skips field x6 fail_compilation/fail9665b.d(30): Error: field x1 must be initialized in constructor fail_compilation/fail9665b.d(30): Error: field x4 must be initialized in constructor --- +/ struct S1 { X x1; X x2; X x3; X[2] x4; X[2] x5; X[2] x6; this(int) { if (true) x2 = X(1); auto n = true ? (x3 = X(1)) : X.init; if (true) x5 = X(1); auto m = true ? (x6 = X(1)) : typeof(x6).init; } } /***************************************************/ // with nested struct /+ TEST_OUTPUT: --- fail_compilation/fail9665b.d(65): Error: one path skips field x2 fail_compilation/fail9665b.d(66): Error: one path skips field x3 fail_compilation/fail9665b.d(68): Error: one path skips field x5 fail_compilation/fail9665b.d(69): Error: one path skips field x6 fail_compilation/fail9665b.d(63): Error: field x1 must be initialized in constructor, because it is nested struct fail_compilation/fail9665b.d(63): Error: field x4 must be initialized in constructor, because it is nested struct fail_compilation/fail9665b.d(76): Error: template instance fail9665b.S2!(X) error instantiating --- +/ struct S2(X) { X x1; X x2; X x3; X[2] x4; X[2] x5; X[2] x6; this(X x) { if (true) x2 = x; auto a = true ? (x3 = x) : X.init; if (true) x5 = x; auto b = true ? (x6 = x) : typeof(x6).init; } } void test2() { struct X { this(int) {} } static assert(X.tupleof.length == 1); S2!(X) s = X(1); }