mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
62 lines
1.5 KiB
D
62 lines
1.5 KiB
D
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fail12749.d(19): Error: immutable field `inum` initialization is not allowed in foreach loop
|
|
fail_compilation/fail12749.d(20): Error: const field `cnum` initialization is not allowed in foreach loop
|
|
fail_compilation/fail12749.d(25): Error: immutable field `inum` initialization is not allowed in nested function `set`
|
|
fail_compilation/fail12749.d(26): Error: const field `cnum` initialization is not allowed in nested function `set`
|
|
---
|
|
*/
|
|
struct S
|
|
{
|
|
immutable int inum;
|
|
const int cnum;
|
|
|
|
this(int i)
|
|
{
|
|
foreach (n; Aggr())
|
|
{
|
|
inum = i;
|
|
cnum = i;
|
|
}
|
|
|
|
void set(int i)
|
|
{
|
|
inum = i;
|
|
cnum = i;
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/fail12749.d(48): Error: immutable variable `inum` initialization is not allowed in foreach loop
|
|
fail_compilation/fail12749.d(49): Error: const variable `cnum` initialization is not allowed in foreach loop
|
|
fail_compilation/fail12749.d(54): Error: immutable variable `inum` initialization is not allowed in nested function `set`
|
|
fail_compilation/fail12749.d(55): Error: const variable `cnum` initialization is not allowed in nested function `set`
|
|
---
|
|
*/
|
|
immutable int inum;
|
|
const int cnum;
|
|
static this()
|
|
{
|
|
int i = 10;
|
|
|
|
foreach (n; Aggr())
|
|
{
|
|
inum = i;
|
|
cnum = i;
|
|
}
|
|
|
|
void set(int i)
|
|
{
|
|
inum = i;
|
|
cnum = i;
|
|
}
|
|
}
|
|
|
|
struct Aggr
|
|
{
|
|
int opApply(int delegate(int) dg) { return dg(1); }
|
|
}
|