| /* |
| 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); } |
| } |