blob: df1221a2cb456bbe3b54b5e8689e2c6f68597d5d [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/fail14089.d(41): Error: `long` has no effect in expression `1`
fail_compilation/fail14089.d(41): Error: `long` has no effect in expression `1`
fail_compilation/fail14089.d(42): Error: `long` has no effect in expression `1`
fail_compilation/fail14089.d(42): Error: `var` has no effect in expression `n`
fail_compilation/fail14089.d(43): Error: `long` has no effect in expression `1`
fail_compilation/fail14089.d(43): Error: `dotvar` has no effect in expression `s.val`
fail_compilation/fail14089.d(44): Error: `var` has no effect in expression `n`
fail_compilation/fail14089.d(44): Error: `long` has no effect in expression `1`
fail_compilation/fail14089.d(45): Error: `dotvar` has no effect in expression `s.val`
fail_compilation/fail14089.d(45): Error: `long` has no effect in expression `1`
---
*/
bool cond;
void main()
{
int foo() { return 0; }
int n;
struct S { int val; }
S s;
// The whole of each CondExps has side effects, So no error.
cond ? foo() : n;
cond ? foo() : s.val;
cond ? 1 : foo();
cond ? n : foo();
cond ? s.val : foo();
cond ? (n = 1) : 1;
cond ? (n = 1) : n;
cond ? (n = 1) : s.val;
cond ? 1 : (n = 1);
cond ? n : (n = 1);
cond ? s.val : (n = 1);
// errors
cond ? 1 : 1;
cond ? 1 : n;
cond ? 1 : s.val;
cond ? n : 1;
cond ? s.val : 1;
}