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.