[Issue 17219] variable shadowing and overload sets

2022-12-17 Thread d-bugmail--- via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17219

Iain Buclaw  changed:

   What|Removed |Added

   Priority|P1  |P3

--


[Issue 17219] variable shadowing and overload sets

2017-02-23 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=17219

--- Comment #1 from John Colvin  ---
One also gets this weirdness:

void foo(alias bar)()
{
static int bar0(T...)(T t) { return 0; }
alias bar = bar0;
pragma(msg, __traits(identifier, __traits(parent, bar!int)));
pragma(msg, __traits(identifier, __traits(parent, __traits(parent,
bar!int;
}

int blah(T)(T t) { return 1; }

void main()
{
foo!blah;
}

output:
bar0
bar0

I.e. __traits(parent, ...) ends up idempotent.

--