| /* TEST_OUTPUT: |
| --- |
| fail_compilation/test18708.d(24): Error: one path skips field `s` |
| fail_compilation/test18708.d(29): Error: one path skips field `s` |
| fail_compilation/test18708.d(34): Error: one path skips field `s` |
| fail_compilation/test18708.d(39): Error: one path skips field `s` |
| --- |
| */ |
| // https://issues.dlang.org/show_bug.cgi?id=18708 |
| |
| struct S { int y; @disable this(); } |
| |
| class C |
| { |
| S s; |
| |
| this(S t) |
| { |
| if (bar(s = t)) foo(); // OK |
| } |
| |
| this(S t, int i) |
| { |
| i || bar(s = t); |
| } |
| |
| this(S t, int i, int j) |
| { |
| i && bar(s = t); |
| } |
| |
| this(S t, int i, long j) |
| { |
| i ? bar(s = t) : i; |
| } |
| |
| this(S t, int i, byte j) |
| { |
| i ? i : bar(s = t); |
| } |
| } |
| |
| int bar(S s); |
| int foo(); |
| |
| /***********************************/ |
| |
| class E : Exception |
| { |
| this(string msg, int line = 0, int pos = 0) pure nothrow @safe |
| { |
| if (line) |
| super("hello"); |
| else |
| super(msg); |
| } |
| |
| this(string msg, string file, size_t line) pure nothrow @safe |
| { |
| super(msg, file, line); |
| } |
| } |