Thread overview
getProtection gives different result when member is accessed via getMember
Aug 05, 2018
Yuxuan Shui
Aug 06, 2018
Basile B.
Aug 06, 2018
Basile B.
August 05, 2018
file1.d:
import std.stdio;

file2.d:
import file1;
pragma(msg, __traits(getProtection, __traits(getMember, m1, "std"))); // public
pragma(msg, __traits(getProtection, m1.std)); // private

Bug? Intended?
August 06, 2018
On Sunday, 5 August 2018 at 01:48:08 UTC, Yuxuan Shui wrote:
> file1.d:
> import std.stdio;
>
> file2.d:
> import file1;
> pragma(msg, __traits(getProtection, __traits(getMember, m1, "std"))); // public
> pragma(msg, __traits(getProtection, m1.std)); // private
>
> Bug? Intended?

It's a bug since in both cases it's the same symbol how can the result be different ?
August 06, 2018
On Sunday, 5 August 2018 at 01:48:08 UTC, Yuxuan Shui wrote:
> file1.d:
> import std.stdio;
>
> file2.d:
> import file1;
> pragma(msg, __traits(getProtection, __traits(getMember, m1, "std"))); // public
> pragma(msg, __traits(getProtection, m1.std)); // private
>
> Bug? Intended?

reported for you https://issues.dlang.org/show_bug.cgi?id=19144