[Issue 12528] New: foreach with inout ref argument cannot be interpreted at compile time

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Apr 6 08:33:42 PDT 2014


https://d.puremagic.com/issues/show_bug.cgi?id=12528

           Summary: foreach with inout ref argument cannot be interpreted
                    at compile time
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: CTFE
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: code at dawg.eu


--- Comment #0 from Martin Nowak <code at dawg.eu> 2014-04-06 08:33:39 PDT ---
cat > bug.d << CODE
inout(T)[] dup(T)(inout(T)[] a)
{
    inout(T)[] res;
    foreach (ref e; a)
        res ~= e;
    return res;
}

enum works = dup([0]);
enum trigger = dup([0, 1]);
CODE

dmd -c bug.d
----
bug.d(5): Error: Cannot interpret res ~= e at compile time
bug.d(10):        called from here: dup([0, 1])
----

Probably some issue when reassigning the foreach argument because it's only
triggered when the array has more than one element.

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


More information about the Digitalmars-d-bugs mailing list