On 2019-04-27 16:30:48 +0000, Adam D. Ruppe said:

This will never work in D. The module needs to work by itself. It can see public imports from another module it itself imports:

module A.c;

import A; // thanks to this, it can see a `public import A.a;` from the A package..


But without that explicit import, it cannot see anything outside itself. You might be able to get away with listing the `public import`s in package.d, and then just `import A;` in each individual module though.

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?

--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster

Reply via email to