mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
37 lines
1.1 KiB
D
37 lines
1.1 KiB
D
/* REQUIRED_ARGS: -preview=fixImmutableConv
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/test15660.d(26): Error: cannot implicitly convert expression `f(v)` of type `int[]` to `immutable(int[])`
|
|
fail_compilation/test15660.d(34): Error: cannot copy `const(void)[]` to `void[]`
|
|
fail_compilation/test15660.d(34): Source data has incompatible type qualifier(s)
|
|
fail_compilation/test15660.d(34): Use `cast(void[])` to force copy
|
|
fail_compilation/test15660.d(36): Error: cannot copy `const(int*)[]` to `void[]`
|
|
fail_compilation/test15660.d(36): Source data has incompatible type qualifier(s)
|
|
fail_compilation/test15660.d(36): Use `cast(void[])` to force copy
|
|
---
|
|
*/
|
|
|
|
// https://issues.dlang.org/show_bug.cgi?id=15660
|
|
|
|
int[] f(ref void[] m) pure
|
|
{
|
|
auto result = new int[5];
|
|
m = result;
|
|
return result;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
void[] v;
|
|
immutable x = f(v);
|
|
}
|
|
|
|
// https://issues.dlang.org/show_bug.cgi?id=17148
|
|
void f(int*[] a, const int*[] b) @system
|
|
{
|
|
void[] a1 = a;
|
|
const(void)[] b1 = b;
|
|
a1[] = b1[];
|
|
*a[0] = 0; //modify const data
|
|
a1[] = new const(int*)[2];
|
|
}
|