https://issues.dlang.org/show_bug.cgi?id=18039
Issue ID: 18039 Summary: Deprecation: symbol is not visible from module when accessed in a with () of something that imports it Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: zor...@gmail.com Arch/Manjaro 64-bit, dmd 2.0.77.0 app.d --------------------- import third; void main() { import std.stdio; import second : Second; Second second; with (second) { writeln(Third.stringof); } } second.d --------------------- module second; struct Second { import third : Third; } third.d --------------------- module third; struct Third {} source/app.d(11,17): Deprecation: second.Second.Third is not visible from module app The top-level `import third` in app.d is ignored and it only complains about implicitly (and erroneously?) inheriting the import from `with (second)`. You can only silence it by moving the import out of Second (eg. to module-level), or by placing a new `import third` inside the with (). --