[Issue 13197] New: 'package' visibility bug
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Thu Jul 24 00:24:58 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13197
Issue ID: 13197
Summary: 'package' visibility bug
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: DMD
Assignee: nobody at puremagic.com
Reporter: turkeyman at gmail.com
I have a problem where a base class has some member with package protection,
and a class that derives from the base seems to hijack the base classes
visibility constraints.
In the example in f(), i can access the base class directly, but I can't access
it via the derived class, even though it should (?) be accessible...
If i 'cast(C)D", then I can call f(), as expected. I shouldn't have to perform
this case to access package visible base members.
-----------------------
module x.a;
import x.y; // import class C
import x.y.z; // import class D : C
void f()
{
C c;
c.f(); // no problem, C is declared in the same package
D d;
d.f(); // error! D doesn't define f(), C does, and we have access to C as
demonstrated above
}
-----------------------
module x.y;
class C
{
package:
void f()
{
}
}
-----------------------
module x.y.z;
class D : C
{
}
--
More information about the Digitalmars-d-bugs
mailing list