www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 1948] New: CTFE fails when mutating a struct in an array

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1948

           Summary: CTFE fails when mutating a struct in an array
           Product: D
           Version: 2.012
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: samukha voliacable.com


Error: cannot evaluate foo() at compile time

struct S
{
    int x;
}

int foo()
{
    S[] a = [];
    a ~= S();

    a[0].x = 1; // Fails 

    return 0;
}

enum x = foo();

Btw, CTFE is relatively difficult to debug. More informative messages than
"cannot evaluate ... at compile time" would be appreciated.


-- 
Mar 26 2008
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1948


clugdbug yahoo.com.au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|CTFE fails when mutating a  |CTFE fails when mutating a
                   |struct in an array          |struct in an array
            Version|2.012                       |1.028





This applies to D1.0 as well.

For D1.0, change last line of test case to:
int x = foo();


-- 
Feb 19 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1948


Don <clugdbug yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch
                 CC|                            |clugdbug yahoo.com.au







-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jul 24 2009
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=1948


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla digitalmars.com
         Resolution|                            |FIXED





13:23:18 PDT ---
Fixed dmd 1.047 and 2.032

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 03 2009