[Issue 13805] New: Nested struct initialization error

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Mon Dec 1 08:42:09 PST 2014


https://issues.dlang.org/show_bug.cgi?id=13805

          Issue ID: 13805
           Summary: Nested struct initialization error
           Product: D
           Version: D2
          Hardware: x86
                OS: Windows
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P1
         Component: DMD
          Assignee: nobody at puremagic.com
          Reporter: bearophile_hugs at eml.cc

>From issue 13595. This looks like a compiler bug:

void main() {
    import std.algorithm: map, groupBy;
    //[""].map!((string s) => s).groupBy!((x, y) => true); // OK
    [""].map!((s) => s).groupBy!((x, y) => true); // Error
}


dmd 2.067alpha gives:

...\dmd2\windows\bin\..\..\src\phobos\std\algorithm.d(4659): Error: field _prev
must be initialized in constructor, because it is nested struct
...\dmd2\windows\bin\..\..\src\phobos\std\algorithm.d(4770): Error: template
instance temp.main.groupBy!(__lambda2, cast(Flag)false, MapResult!(__lambda1,
string[])) error instantiating
temp.d(5):        instantiated from here: groupBy!((x, y) => true,
MapResult!(__lambda1, string[]))

The error doesn't appear if you replace "(s)" with "(string s)".

--


More information about the Digitalmars-d-bugs mailing list