import except one?

Chris Nicholson-Sauls via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 27 07:41:41 PDT 2014


On Friday, 27 June 2014 at 05:26:09 UTC, Puming wrote:
> On Thursday, 26 June 2014 at 08:02:24 UTC, bearophile wrote:
>> Puming:
>>
>>> I'm using scriptlike, which imports everything from 
>>> std.process for convienience, but I also need to import 
>>> another module, which contains a class `Config`, it conflicts 
>>> with std.process.Config. I don't actually need 
>>> std.process.Config, but I need many other symbols in 
>>> scriptlike and std.process.
>>>
>>> What I want to achieve is to import ALL symbols from 
>>> scriptlike EXCEPT std.process.Config, something like:
>>>
>>> ```d
>>> import scriptlike: !Config;
>>
>> A similar idea is present in Haskell, but it was refused by 
>> Walter.
>
> Thanks :-)
>
> I wander what was the rationale behind Walter's rejection.  
> IMHO if we have a selective filter mechanism for imports, the 
> complement exclude mechinism works as well.
>
> But of cause we are not that far yet, final, nothrow, pure and 
> others don't have their complements either.
>
>>
>> The use of scriptlike is going to cause you similar problems, 
>> it's not for a fine tuning of imports.
>
> The problem is that we don't have a complete mechanism to fine 
> tuning the imports. Selective filtering is only half of the 
> cake.
>
>>
>> Bye,
>> bearophile

I wasn't in that particular discussion, but based on history, I 
imagine Walter's argument was probably along the lines of just 
use a static import for both modules and use either aliasing or 
FQN's for the symbols you need.

That and inner scope imports.


More information about the Digitalmars-d-learn mailing list