Mercurial > projects > ldc
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 |