[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