[Issue 12363] getProtection trait doesn't work for certain kinds of fields (and is poorly designed...)

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Fri Dec 19 14:25:22 PST 2014


https://issues.dlang.org/show_bug.cgi?id=12363

Luca Niccoli <lultimouomo at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |lultimouomo at gmail.com

--- Comment #1 from Luca Niccoli <lultimouomo at gmail.com> ---
On the same vein:

---
struct Template(string String) {
    alias Alias = String;
}
pragma(msg, __traits(getProtection, __traits(getMember, Template!"string",
"Alias")));
---

Output:
---
app.d(4): Error: argument "string" has no protection
false
---

And a bit different, but related:

---
struct Struct{};
struct Template(Type) {
    private alias Alias = Type;
}
pragma(msg, __traits(getProtection, __traits(getMember, Template!Struct,
"Alias")));
---

Output:
---
public
---

which does not seem right.
Going through getMember makes it impossible to get the protection attribute of
member aliases.

--


More information about the Digitalmars-d-bugs mailing list