Effective D book?

Timon Gehr timon.gehr at gmx.ch
Sat Jun 15 14:34:06 PDT 2013


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.


More information about the Digitalmars-d mailing list