/* TEST_OUTPUT: --- fail_compilation/foreach2.d(15): Error: argument type mismatch, `int` to `ref immutable(int)` fail_compilation/foreach2.d(16): Error: argument type mismatch, `int` to `ref immutable(int)` fail_compilation/foreach2.d(19): Error: argument type mismatch, `int` to `ref double` fail_compilation/foreach2.d(20): Error: argument type mismatch, `int` to `ref const(double)` fail_compilation/foreach2.d(21): Error: argument type mismatch, `int` to `ref immutable(double)` --- */ void test4090 () { // From https://issues.dlang.org/show_bug.cgi?id=4090 int[] arr = [1,2,3]; foreach (immutable ref x; arr) {} foreach (immutable ref int x; arr) {} // convertible type + qualifier + ref foreach ( ref double x; arr) {} foreach ( const ref double x; arr) {} foreach (immutable ref double x; arr) {} }