https://issues.dlang.org/show_bug.cgi?id=22003
Issue ID: 22003 Summary: "Error: unknown, please file report on issues.dlang.org" with SumType/struct mutual recursion Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P3 Component: dmd Assignee: nob...@puremagic.com Reporter: dlang-bugzi...@thecybershadow.net //////////// test.d /////////// import std.sumtype; struct Choice { Node[] nodes; } struct Seq { Node[] nodes; } alias Node = SumType!( Choice, Seq, ); /////////////////////////////// Compiler output: ----------------------------------------------------- Error: unknown, please file report on issues.dlang.org .../std/sumtype.d(1905): Error: template instance `std.sumtype.SumType!(Choice, Seq).SumType.get!(Choice)` error instantiating .../std/meta.d-mixin-794(794): instantiated from here: `F!0LU` .../std/sumtype.d(1908): instantiated from here: `Map!(getType, 0LU)` .../std/sumtype.d(1944): instantiated from here: `valueTypes!0LU` .../std/sumtype.d(1554): ... (1 instantiations, -v to show) ... .../std/sumtype.d(692): instantiated from here: `match!(SumType!(Choice, Seq))` test.d(5): instantiated from here: `SumType!(Choice, Seq)` .../std/sumtype.d(1962): while evaluating: `static assert((__error)(hid))` .../std/sumtype.d(1984): Error: forward reference to inferred return type of function call `function () { foreach (caseId; 0 .. 2LU) { return caseId; } assert(0); } ()` .../std/sumtype.d(1984): Error: forward reference to inferred return type of function call `function () { typeof(__error)[] __res104; foreach (caseId; 0 .. 2LU) { __res104 ~= caseId; } return __res104; } ()` ----------------------------------------------------- --