On 06/15/2013 06:06 PM, Peter Alexander wrote:
On Saturday, 15 June 2013 at 15:29:23 UTC, Mr. Anonymous wrote:
On Saturday, 15 June 2013 at 15:09:55 UTC, Peter Alexander wrote:
On Saturday, 15 June 2013 at 12:20:46 UTC, Timon Gehr wrote:
One issue with local imports is that they hide local symbols.

Can you give an example? I can't repro.

void main()
{
    import std.stdio;
    void writeln(string) {}
    writeln("foo");
    std.stdio.writeln("bar");
}

This writes only "bar".

void writeln(string) {}
void main()
{
    import std.stdio;
    writeln("foo");
    std.stdio.writeln("bar");
}

Oh, but that's not a local symbol, that's a module level symbol. The
import is more local that the module level writeln, so that works as you
would expect.

It also isn't a problem at all, ...

It sure is, the module system is supposed to provide hijacking protection.

Reply via email to