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