Thread overview
Global Imports in DMD not working?
Jan 08, 2007
Trevor Parscal
Jan 08, 2007
Hasan Aljudy
Jan 09, 2007
Trevor Parscal
Jan 09, 2007
Walter Bright
January 08, 2007
I've been getting annoyed with this lately...

a imports b, which imports c, but a still can't access anything in c...

Anybody else notice this?

I'm using dmd 1.0
January 08, 2007
Trevor Parscal wrote:
> I've been getting annoyed with this lately...
> 
> a imports b, which imports c, but a still can't access anything in c...
> 
> Anybody else notice this?
> 
> I'm using dmd 1.0

imports are private by default, i.e. they don't propogate.
use public imports, i.e. in b, say:
public import c;
this way, any module that imports b automatically imports c.
January 08, 2007
Hasan Aljudy wrote:
> Trevor Parscal wrote:
>> I've been getting annoyed with this lately...
>>
>> a imports b, which imports c, but a still can't access anything in c...
>>
>> Anybody else notice this?
>>
>> I'm using dmd 1.0
> 
> imports are private by default, i.e. they don't propogate.
> use public imports, i.e. in b, say:
> public import c;
> this way, any module that imports b automatically imports c.

Actually I was just about to post about this, as my Bovis project has several uses of public imports...  For some unknown reason, DMD/1.00 is not honoring public imports. Given Trevor's case: a imports b, which /publicly/ imports c, but a cannot see c.

It doesn't seem to /always/ happen though, and I've yet to find a pattern in it.

-- Chris Nicholson-Sauls
January 09, 2007
Yes, I WAS using global imports...

I just hate to have a mess of import lists in the top of every file.

Well, hopefully this will get fixed...
January 09, 2007
Chris Nicholson-Sauls wrote:
> It doesn't seem to /always/ happen though, and I've yet to find a pattern in it.

If you can get a small, reproducible, test case, please post it to bugzilla.