digitalmars.D.bugs - [Issue 16584] New: Local import ineffective for mixin templates
- via Digitalmars-d-bugs (39/39) Oct 03 2016 https://issues.dlang.org/show_bug.cgi?id=16584
https://issues.dlang.org/show_bug.cgi?id=16584 Issue ID: 16584 Summary: Local import ineffective for mixin templates Product: D Version: D2 Hardware: x86_64 OS: Windows Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: m.bierlee lostmoment.com Consider the following code: // func.d module func; public uint toNumber(string str) { return str[0]; } // mixins.d module mixins; import func; mixin template bla(string number) { uint globalBla = toNumber(number); } // app.d module app; import mixins; public void main() { mixin bla!"aaa"; } When compiled, the following compilation error is shown: src\mixins.d(6,19): Error: undefined identifier 'toNumber' src\app.d(6,2): Error: mixin app.main.bla!"aaa" error instantiating I expected the import of module 'func' to be only needed at the site of the mixin declaration, not where the mixin is used. Publicly importing module 'func' in mixins.d works around the problem, as does importing module 'func' in app.d. --
Oct 03 2016