Bug 2132 – CTFE: can't evaluate ~= at compile time, D2 only.

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Windows
Creation time
2008-05-27T07:32:00Z
Last change time
2015-06-09T01:21:35Z
Assigned to
bugzilla
Creator
clugdbug

Comments

Comment #0 by clugdbug — 2008-05-27T07:32:54Z
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(";")); }
Comment #1 by bugzilla — 2008-06-22T18:57:31Z
Fixed dmd 1.031 and 2.015