Skip to content

Commit fca9a91

Browse files
committed
[Sema] Extend access scope services to apply import restrictions
Apply import restriction in central access scope services allows us to simplify the access-level on import enforcement as it's better integrated with the existing logic.
1 parent 48893ea commit fca9a91

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

lib/AST/Decl.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4062,6 +4062,16 @@ getAccessScopeForFormalAccess(const ValueDecl *VD,
40624062
resultDC = resultDC->getParent();
40634063
}
40644064

4065+
auto localImportRestriction = VD->getImportAccessFrom(useDC);
4066+
if (localImportRestriction.has_value()) {
4067+
AccessLevel importAccessLevel =
4068+
localImportRestriction.value().accessLevel;
4069+
if (access > importAccessLevel) {
4070+
access = std::min(access, importAccessLevel);
4071+
resultDC = useDC->getParentSourceFile();
4072+
}
4073+
}
4074+
40654075
switch (access) {
40664076
case AccessLevel::Private:
40674077
case AccessLevel::FilePrivate:

0 commit comments

Comments
 (0)