digitalmars.D.bugs - [Issue 18263] New: selective import with same name masks out this
- d-bugmail puremagic.com (35/35) Jan 18 2018 https://issues.dlang.org/show_bug.cgi?id=18263
https://issues.dlang.org/show_bug.cgi?id=18263 Issue ID: 18263 Summary: selective import with same name masks out this reference in mixin template Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: default_357-line yahoo.de The following code fails with an error: mixin template HappyFunTime() { static void foo() { import std.meta : Filter; alias bar = this.bar; } } struct Filter { void bar() { } mixin HappyFunTime; } test.d(9): Error: identifier 'bar' of 'Filter.bar' is not defined What happens is that because both Filter and std.meta.Filter have the same name, the import for std.meta.Filter somehow masks out the struct Filter for the "this" lookup in the alias. This is horrifying. If this lookup absolutely has to be done by name, it should at least be done by fqn. --
Jan 18 2018