1 /* 2 TEST_OUTPUT: 3 --- 4 fail_compilation/fail14089.d(41): Error: `long` has no effect in expression `1` 5 fail_compilation/fail14089.d(41): Error: `long` has no effect in expression `1` 6 fail_compilation/fail14089.d(42): Error: `long` has no effect in expression `1` 7 fail_compilation/fail14089.d(42): Error: `var` has no effect in expression `n` 8 fail_compilation/fail14089.d(43): Error: `long` has no effect in expression `1` 9 fail_compilation/fail14089.d(43): Error: `dotvar` has no effect in expression `s.val` 10 fail_compilation/fail14089.d(44): Error: `var` has no effect in expression `n` 11 fail_compilation/fail14089.d(44): Error: `long` has no effect in expression `1` 12 fail_compilation/fail14089.d(45): Error: `dotvar` has no effect in expression `s.val` 13 fail_compilation/fail14089.d(45): Error: `long` has no effect in expression `1` 14 --- 15 */ 16 17 bool cond; 18 main()19void main() 20 { 21 int foo() { return 0; } 22 int n; 23 struct S { int val; } 24 S s; 25 26 // The whole of each CondExps has side effects, So no error. 27 cond ? foo() : n; 28 cond ? foo() : s.val; 29 cond ? 1 : foo(); 30 cond ? n : foo(); 31 cond ? s.val : foo(); 32 33 cond ? (n = 1) : 1; 34 cond ? (n = 1) : n; 35 cond ? (n = 1) : s.val; 36 cond ? 1 : (n = 1); 37 cond ? n : (n = 1); 38 cond ? s.val : (n = 1); 39 40 // errors 41 cond ? 1 : 1; 42 cond ? 1 : n; 43 cond ? 1 : s.val; 44 cond ? n : 1; 45 cond ? s.val : 1; 46 } 47