http://d.puremagic.com/issues/show_bug.cgi?id=7491
Summary: import symbol name unavailable in class scope Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: d...@dawgfoto.de --- Comment #0 from d...@dawgfoto.de 2012-02-12 19:19:44 PST --- struct S { private import std.stdio; } class Base { private import std.stdio; } class Derived : Base { static void print() { std.stdio.writeln("Derived"); } } void main() { S.std.stdio.writeln("S"); // Error: Base.std is not a declaration Base.std.stdio.writeln("Base"); // Error: Derived.std is not a declaration Derived.std.stdio.writeln("Derived"); Derived.print(); } --------- Solution would be to add the disabled code. https://github.com/D-Programming-Language/dmd/commit/4bce0eb3acbb9ecce5988c55281aa1b3fd5a42f0#L0R7832 ---- This is problematic in the following case. ---- module a; class Base { private import std.algorithm; } ---- module b; import a, std.stdio; class Derived : Base { void foo() { // 'std' is looked up through Base.std rather than through module level // but Derived has no access right to the private import. std.stdio.writeln("Derived"); } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------