mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Split getAccessibility() into getFormalAccess() and getEffectiveAccess().
Currently a no-op, but effective access for entities within the current
module will soon need to take testability into account. This declaration:
internal func foo() {}
has a formal access of 'internal', but an effective access of 'public' if
we're in a testable mode.
Part of rdar://problem/17732115 (testability)
Swift SVN r26472
This commit is contained in:
@@ -2179,18 +2179,18 @@ public:
|
||||
|
||||
Accessibility AccessibilityOfContext;
|
||||
if (auto *NTD = dyn_cast<NominalTypeDecl>(CurrDeclContext))
|
||||
AccessibilityOfContext = NTD->getAccessibility();
|
||||
AccessibilityOfContext = NTD->getFormalAccess();
|
||||
else
|
||||
AccessibilityOfContext = cast<ExtensionDecl>(CurrDeclContext)
|
||||
->getExtendedType()
|
||||
->getAnyNominal()
|
||||
->getAccessibility();
|
||||
->getFormalAccess();
|
||||
// If the developer has not input "func", we need to add necessary keywords
|
||||
if (!isKeywordSpecified("func")) {
|
||||
if (!isKeywordSpecified("private") &&
|
||||
!isKeywordSpecified("public") &&
|
||||
!isKeywordSpecified("internal"))
|
||||
Builder.addAccessControlKeyword(std::min(FD->getAccessibility(),
|
||||
Builder.addAccessControlKeyword(std::min(FD->getFormalAccess(),
|
||||
AccessibilityOfContext));
|
||||
|
||||
if (Reason == DeclVisibilityKind::MemberOfSuper &&
|
||||
|
||||
Reference in New Issue
Block a user