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.