> On Feb 22, 2016, at 10:56 AM, Jonathan M Davis <[email protected]> > wrote: > > On Monday, February 22, 2016 09:59:31 Steven Schveighoffer via dmd-internals > wrote: >> >>> On Feb 22, 2016, at 7:04 AM, Jonathan M Davis via dmd-internals >>> <[email protected]> wrote: >>> >>> On Sunday, February 21, 2016 19:08:37 Steven Schveighoffer via >>> dmd-internals wrote: >>>> >>>> The key comment in those PRs: >>>> https://github.com/D-Programming-Language/dmd/pull/5426#issuecomment-181589047 >>> >>> Well, while I can see why from an implementation perspective, it makes sense >>> to say that when you have >>> >>> import foo.bar : baz; >>> >>> you haven't really imported the module, so foo.bar.baz isn't legit, and you >>> have to say baz, from a usability perspective, nobody is going to expect >>> that foo.bar.baz suddenly is just baz and not foo.bar.baz, because you >>> imported it with a selective imports. >> >> Like the comment says, however, what if you have a local foo symbol defined? >> The compiler is going to complain, or silently choose one (I think with the >> new lookup rules, it would choose the local module’s name). >> >> With Phobos, this isn’t strictly an issue, since we have no local symbols >> named std. But I could see lots of problems with other libraries. > > In that case, using static imports makes sense.
I think you misunderstood the problem. If you have a local foo declared, then the FQN doesn’t help (as it starts with foo), you need to use a different name that doesn’t conflict, requiring either a renamed import, or using the leaf symbol name. -Steve
_______________________________________________ dmd-internals mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/dmd-internals
