Error or a new behaviour with 2.071.0

ZombineDev via Digitalmars-d digitalmars-d at puremagic.com
Fri Apr 8 11:03:08 PDT 2016


On Friday, 8 April 2016 at 13:44:17 UTC, Steven Schveighoffer 
wrote:
> On 4/8/16 9:31 AM, Daniel Kozak wrote:
>> On Friday, 8 April 2016 at 13:28:15 UTC, Daniel Kozak wrote:
>>> [...]
>>
>> Btw:
>>
>> import a : Foo;
>>
>> Foo f1; // works OK even if Foo is private
>
> Someone just filed this morning:
>
> https://issues.dlang.org/show_bug.cgi?id=15896
>
>> Or even worse
>>
>> import a : Foo;
>> import b;
>>
>> Foo f1; // works OK use a.Foo
>
> Note, import rules here say a.Foo is now a LOCAL symbol. It's 
> like you did:
>
> import a;
> alias Foo = a.Foo;
>
> This trumps any other imports. This is a long-standing rule 
> that was not implemented properly in previous versions. You can 
> get the old behavior back I think by doing -transition=import 
> for dmd.
>
> -Steve

Even so, you shouldn't be able to make a local alias to private 
symbol from a different module.


More information about the Digitalmars-d mailing list