[Issue 16085] Imported name causes lookup deprecation warning even if masked by member name
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon May 30 08:10:53 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=16085
--- Comment #7 from Andrei Alexandrescu <andrei at erdani.com> ---
(In reply to Martin Nowak from comment #6)
> (In reply to Andrei Alexandrescu from comment #5)
> > The issue is subtler than that (I'd agree the snippet above is a clear cut).
> > The thing is Bucketizer _also_ defines its own reallocate:
>
> Ah, I was already wondering what was actually called now, but didn't have
> more time to investigate.
>
> > struct Bucketizer
> > {
> > import whatever : reallocate; // <- private
> > bool reallocate(ref void[] b, size_t size) // <- public
> > { ... }
> >
> > The member "reallocate" should effectively hide the private import, yet the
> > deprecation message still appears.
>
> It doesn't hide but overloads the selective import. Public/private overloads
> should have public visibility but will be access checked after overload
> resolution.
> Seems like the overload code
> https://github.com/dlang/dmd/blob/356353041c3d26d525e43f1ea6a9b36211ba523f/
> src/access.d#L481-L491 doesn't work properly.
Great, thanks!
--
More information about the Digitalmars-d-bugs
mailing list