private selective import + overload = breaks accessibility rules

Seb seb at wilzba.ch
Wed Jan 17 02:23:40 UTC 2018


On Tuesday, 16 January 2018 at 19:05:51 UTC, rumbu wrote:
> On Tuesday, 16 January 2018 at 18:32:46 UTC, H. S. Teoh wrote:
>
>> Which version of the compiler is this?  I'm pretty sure the 
>> std.math.isNaN imported by module a should not be visible in 
>> module b. The latest compiler should emit a deprecation 
>> warning for this.
>
> 2.078, but also 2.077. Deprecation is emitted only if there is 
> no overload;
>
>>
>> Of course, it's possible that having a public symbol in module 
>> a that overloads an imported symbol may have triggered a buggy 
>> corner case in the compiler.  If so, a bug should be filed.
>
> Done: https://issues.dlang.org/show_bug.cgi?id=18243

1) Imports are by default private
2) This is a known bug. See:

https://github.com/dlang/phobos/pull/5584
https://issues.dlang.org/show_bug.cgi?id=17630

On the good side, there's WIP to fix this, e.g. 
https://github.com/dlang/dmd/pull/7668


More information about the Digitalmars-d-learn mailing list