[Issue 2132] New: CTFE: can't evaluate ~= at compile time, D2 only.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue May 27 05:32:56 PDT 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2132
Summary: CTFE: can't evaluate ~= at compile time, D2 only.
Product: D
Version: 2.014
Platform: PC
OS/Version: Windows
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: clugdbug at yahoo.com.au
This triggers the behaviour shown in bugzilla #1947; but that's incidental.
Here, it's the error message which is the problem. It works OK on D1, and also
works on D2 if you use ~ instead of ~=.
The problem could be related to #1768, but the workaround there (explicitly
initialising the variable) doesn't work here.
------
bug.d(10): Error: cannot evaluate func(";") at compile time
bug.d(10): Error: argument to mixin must be a string, not (func(";"))
Statement::blockExit(009989DC)
mixin(func(";"));
Assertion failure: '0' on line 123 in file 'statement.c'
abnormal program termination
-----------
---
char [] func(invariant char [] s)
{
char [] u = "".dup;
u ~= s; // ICE
u = u ~ s; // OK
return u;
}
void main() {
mixin(func(";"));
}
--
More information about the Digitalmars-d-bugs
mailing list