On Tuesday, June 26, 2018 09:47:44 Radu via Digitalmars-d-learn wrote: > On Tuesday, 26 June 2018 at 09:24:15 UTC, Stefan Koch wrote: > > On Tuesday, 26 June 2018 at 09:14:11 UTC, Radu wrote: > >> Consider this https://run.dlang.io/is/HyY2qG > >> > >> --- > >> void main() > >> { > >> > >> import std.traits; > >> size_t s; > >> > >> pragma(msg, typeof(s).stringof); > >> pragma(msg, mangledName!(typeof(s))); > >> pragma(msg, mangledName!s); > >> > >> } > >> --- > >> > >> It outputs: > >> --- > >> ulong > >> m > >> _D9onlineapp4mainFZ1sm > >> --- > >> > >> I'm looking for a way to get the `s` type symbol name (size_t) > >> not whatever the alias is pointing to (ulong in this case). > >> > >> Is there a way to obtain the alias symbol name? > > > > __traits(identifier, sym); > > Him, that will print the symbol name, in my case `s`. > > To cut to chase - I'm looking something that will print `size_t` > for the symbol `s`.
I'm pretty sure that that's impossible. As I understand it, the compiler basically just replaces aliases with what they refer to and doesn't care what the original type was. And they _definitely_ don't affect mangling. If you're looking to treat an alias as anything different from what it refers to, you're going to be disappointed. - Jonathan M Davis