https://issues.dlang.org/show_bug.cgi?id=20753
Issue ID: 20753
Summary: "Error: unknown" with structs of arrays, speculative
instantiation and recursive types
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Keywords: ice, rejects-valid
Severity: regression
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
//////////////// test.d ////////////////
struct HashCollection()
{
struct Item
{
IniFragment value;
}
Item[] items;
ref lookupToReturnValue()
{
return items[0].value;
}
enum canDup = is(typeof(items.dup));
}
struct IniFragment
{
HashCollection!() children;
}
////////////////////////////////////////
Works in DMD 2.085 but not newer.
Bisecting shows that the error message begins manifesting when it was
introduced ( https://github.com/dlang/dmd/pull/9425 ), however debug versions
of DMD have been failing with an assertion failure before that change. The
assertion failures began after https://github.com/dlang/dmd/pull/5500 .
--