Renaming this from
"ICE (Assertion failure: '0' on statement.c:123) with delegate literal and CTFE mixin."
This has nothing to do with delegate literals. Here's a simpler test case:
----
void main() {
mixin(null);
}
---
On DMD 1.030, this produces:
bug.d(3): Error: argument to mixin must be a string, not (null)
but on DMD 2, it ICEs with:
bug.d(3): Error: argument to mixin must be a string, not (null)
Statement::blockExit(009988FC)
mixin(null);
Assertion failure: '0' on line 123 in file 'statement.c'
abnormal program termination
Interestingly,
----
mixin(null);
---
produces an error on *both* DMD1 and DMD2:
attribute argument to mixin must be a string, not (null)
which has a missing line number. So there are two different but related bugs, one on DMD 2 only, one which is common.
Comment #2 by clugdbug — 2008-06-18T10:39:11Z
Seems to have been fixed in 2.015.
Missing line number error moved to bugzilla #1947.
Comment #3 by clugdbug — 2008-06-18T10:39:39Z
Seems to have been fixed in 2.015.
Missing line number error moved to bugzilla #2153.