From d537ad0d48570dbf3a16ac5301edb86189ffd560 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Thu, 21 May 2009 18:08:31 +0200 Subject: [PATCH] Allow package protected members to be accessed by the declaring module even if it isn't in a package. --- dmd/access.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dmd/access.c b/dmd/access.c index da61b973..141e29a4 100644 --- a/dmd/access.c +++ b/dmd/access.c @@ -392,11 +392,12 @@ void accessCheck(Loc loc, Scope *sc, Expression *e, Declaration *d) #endif if (!e) { - if (d->prot() == PROTprivate && d->getModule() != sc->module || - d->prot() == PROTpackage && !hasPackageAccess(sc, d)) + if (d->getModule() != sc->module) + if (d->prot() == PROTprivate || + d->prot() == PROTpackage && !hasPackageAccess(sc, d)) - error(loc, "%s %s.%s is not accessible from %s", - d->kind(), d->getModule()->toChars(), d->toChars(), sc->module->toChars()); + error(loc, "%s %s.%s is not accessible from %s", + d->kind(), d->getModule()->toChars(), d->toChars(), sc->module->toChars()); } else if (e->type->ty == Tclass) { // Do access check