Identifier hierarchy

Luís Marques luis at luismarques.eu
Mon Jun 11 13:47:41 UTC 2018


On Monday, 11 June 2018 at 13:39:22 UTC, Basile B. wrote:
> the FQN is working here but i find the first message a bit 
> confuse. Not sure if this small runnable represents the issue ?
>
>
> ---
> module runnable;
>
> import std.stdio, std.traits;
>
> struct foo {  struct bar { static int baz;} }
>
> template Test(alias arg)
> {
>     pragma(msg, fullyQualifiedName!arg);
> }
>
> void main()
> {
>     alias t = Test!(foo.bar.baz); // runnable.foo.bar.baz
> }

That gets the types foo, bar, baz. I wanted the identifiers. 
Something like this:

struct Parent
{
     Son son;
}

struct Son
{
     int value;
}

void main()
{
     Parent parent;
     alias t = Magic!(parent.son); // t is now parent (not Parent)
}



More information about the Digitalmars-d mailing list