comparison dmd/access.c @ 1406:eb7cb41ee585

Allow package protected members to be accessed by the declaring module even if it isn't in a package.
author Christian Kamm <kamm incasoftware de>
date Thu, 21 May 2009 18:08:31 +0200
parents eeb8b95ea92e
children 44b145be2ef5
comparison
equal deleted inserted replaced
1405:a865b81fc961 1406:eb7cb41ee585
390 //printf("accessCheck(%s)\n", d->toChars()); 390 //printf("accessCheck(%s)\n", d->toChars());
391 } 391 }
392 #endif 392 #endif
393 if (!e) 393 if (!e)
394 { 394 {
395 if (d->prot() == PROTprivate && d->getModule() != sc->module || 395 if (d->getModule() != sc->module)
396 d->prot() == PROTpackage && !hasPackageAccess(sc, d)) 396 if (d->prot() == PROTprivate ||
397 397 d->prot() == PROTpackage && !hasPackageAccess(sc, d))
398 error(loc, "%s %s.%s is not accessible from %s", 398
399 d->kind(), d->getModule()->toChars(), d->toChars(), sc->module->toChars()); 399 error(loc, "%s %s.%s is not accessible from %s",
400 d->kind(), d->getModule()->toChars(), d->toChars(), sc->module->toChars());
400 } 401 }
401 else if (e->type->ty == Tclass) 402 else if (e->type->ty == Tclass)
402 { // Do access check 403 { // Do access check
403 ClassDeclaration *cd; 404 ClassDeclaration *cd;
404 405