www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 14390] New: [REG2.068a] ICE or bad "has forward references"

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

          Issue ID: 14390
           Summary: [REG2.068a] ICE or bad "has forward references" error
                    with circular class structure
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: ice, rejects-valid
          Severity: regression
          Priority: P1
         Component: DMD
          Assignee: nobody puremagic.com
          Reporter: nilsbossung googlemail.com

Slight variant of issue 12984.
Works in 2.067.0.
Feel free to change the title to be more to the point. I can't really wrap my
head around all this.

---
cat > test.d << code
class B {alias MyD = D!int;}
class C : B
{
    version(ice) void m() {alias MyD = D;}
    version(forward_references) static struct S {alias MyD = D;}
}
class D(T) {alias MyE = E!float;}
class E(T) : D!int
{
    void m() {new C;}
}
code
dmd -c -o- -version=ice test.d
echo "-"
dmd -c -o- -version=forward_references test.d
---
dmd: mangle.c:231: void Mangler::mangleFuncType(TypeFunction*, TypeFunction*,
unsigned char, Type*): Assertion `0' failed.
Aborted (core dumped)
-
test.d(5): Error: struct test.C.S has forward references
---

--
Apr 01 2015