/* TEST_OUTPUT: --- fail_compilation/test21546.d(113): Error: cannot implicitly convert expression `pc` of type `const(int)* delegate() return` to `int* delegate() return` fail_compilation/test21546.d(114): Error: cannot implicitly convert expression `pc` of type `const(int)* delegate() return` to `immutable(int)* delegate() return` fail_compilation/test21546.d(115): Error: cannot implicitly convert expression `pi` of type `immutable(int)* delegate() return` to `int* delegate() return` fail_compilation/test21546.d(213): Error: cannot implicitly convert expression `dc` of type `const(int) delegate() ref return` to `int delegate() ref return` fail_compilation/test21546.d(214): Error: cannot implicitly convert expression `dc` of type `const(int) delegate() ref return` to `immutable(int) delegate() ref return` fail_compilation/test21546.d(215): Error: cannot implicitly convert expression `di` of type `immutable(int) delegate() ref return` to `int delegate() ref return` fail_compilation/test21546.d(305): Error: cannot implicitly convert expression `[dgi]` of type `immutable(int) delegate() ref return[]` to `int delegate() ref return[]` --- */ // https://issues.dlang.org/show_bug.cgi?id=21546 #line 100 alias Pm = int* delegate() return; alias Pc = const(int)* delegate() return; alias Pi = immutable(int)* delegate() return; void f() { Pm pm; Pc pc; Pi pi; pc = pm; pc = pi; pm = pc; pi = pc; pm = pi; } #line 200 alias DGm = ref int delegate() return; alias DGc = ref const(int) delegate() return; alias DGi = ref immutable(int) delegate() return; void g() { DGm dm; DGc dc; DGi di; dc = dm; dc = di; dm = dc; di = dc; dm = di; } #line 300 void h() { immutable int i = 0; DGi dgi = ref() => i; DGm[] dgms = [ dgi ]; }