[dmd-internals] Why are there suddenly tons of deprecation messages about imports in Phobos?

Brad Roberts via dmd-internals dmd-internals at puremagic.com
Mon Feb 22 14:27:28 PST 2016


On 2/22/16 1:40 PM, David Nadlinger via dmd-internals wrote:
> On 22 Feb 2016, at 22:20, Brad Roberts via dmd-internals wrote:
>> While I can understand and work with that definition, it's never been the way I've thought of
>> selective import.  I always thought of them as exactly like regular imports with a filter applied.
>> IE, import this module, but just this set of symbols instead of all of them.
>
> I haven't followed the other recent changes all too closely, but I'm under the the impression that
> they always behaved differently regarding overload/conflict resolution, and still do so right now.
> For example, `import a; import b : foo; foo();` would work even if `a` also contained `foo()`, while
> there would normally be a conflict without the selective import.
>
> This is not to say that I'm particularly fond of that difference, though. I'm just pointing out that
> what you mention has not been a good working model for how selective imports work for quite a long
> while now – the mismatch is not just a consequence of the latest changes.
>
>   — David

I understand and acknowledge that.  However, in my cases (which I admit aren't terribly significant) 
it's worked out correctly.

What I'm trying to say is how I've expected them to work.  I really don't think tacking on a filter 
list should be changing the semantics.  A lot of the time I start off with just "import foo" and 
then later trim that down to "import foo : sym1, sym2, etc" based on what I ended up using.  IMHO, 
that change should be _trivially_ correct.  And it's actually not given the current (and past) 
definition.


More information about the dmd-internals mailing list