mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Add a missing check for a corner case with package use site / internal decl site
Update tests Resolves rdar://106732804, rdar://104987455
This commit is contained in:
@@ -4112,6 +4112,11 @@ static bool checkAccess(const DeclContext *useDC, const ValueDecl *VD,
|
||||
}
|
||||
return true;
|
||||
case AccessLevel::Internal: {
|
||||
// Invalid if the use site is > Internal.
|
||||
// E.g. extension containing a member of a protocol it conforms to has
|
||||
// `package` access level but the member is `internal`
|
||||
if (useDC->getContextKind() == DeclContextKind::Package)
|
||||
return false;
|
||||
const ModuleDecl *sourceModule = sourceDC->getParentModule();
|
||||
const DeclContext *useFile = useDC->getModuleScopeContext();
|
||||
if (useFile->getParentModule() == sourceModule)
|
||||
|
||||
Reference in New Issue
Block a user