On Sunday, 28 April 2019 at 11:12:50 UTC, Robert M. Münch wrote:


One more problem now showing up, when I do this:

A/a.d
        module A.a;
        struct myStruct;

A/b.d
        module A.b;
        struct myStruct {...}

A/c.d
        module A.c;
        import A;
        struct myOtherStruct {
                myStruct ms;
        }

I now get an error in file A/c.d that a.a.myStruct conflicts with a.b.myStruct. Looks like these symbols are different for D. Is there a way to tell D that one is only a forward reference and is the same when D sees the struct declaration later?

They're different symbols because they're in different modules. The module and package name is part of the symbol name. Just import A.b in A.a.

Reply via email to