On Sunday, 21 February 2016 at 00:07:38 UTC, Jonathan M Davis wrote:
What exactly has changed with the import rules? There are now a _ton_ of deprecation messages being printed out when building phobos which are talking about static imports. For instance,

std/string.d(5692): Deprecation: module std.utf is not accessible here, perhaps add 'static import std.utf;'

The corresponding line is

    nextt = std.utf.decode(to, i);

And not only is std.utf imported at the beginning of the function, it's imported explicitly:

    import std.utf : decode;

Does this have something to do with the recent changes to try and deal with local imports not shadowing stuff? In this particular case, there is no local variable named decode, and when decode is used, its full import path is used and not just its name. Is this behavior intended? And what exactly is going on that the compiler suddenly wants lots of static imports?

- Jonathan M Davis

These happened:
https://github.com/D-Programming-Language/dmd/pull/5426 - fix Issue 313 - Fully qualified names bypass private imports

https://github.com/D-Programming-Language/dmd/pull/5445 -fix Issue 10378 - Local imports hide local symbols

I think similar cases were discussed in the comments on those pull requests.
_______________________________________________
dmd-internals mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-internals

Reply via email to