Skip to content

Commit dd8b37e

Browse files
authored
Merge pull request #18772 from jrose-apple/access-denied
Stop printing access on extensions and protocol requirements
2 parents f1f056c + 5a8cbe4 commit dd8b37e

File tree

5 files changed

+709
-789
lines changed

5 files changed

+709
-789
lines changed

lib/AST/ASTPrinter.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ PrintOptions PrintOptions::printTextualInterfaceFile() {
9090
// the default to 'public' and mark the 'internal' things.
9191
result.PrintAccess = true;
9292

93+
result.ExcludeAttrList.push_back(DAK_AccessControl);
94+
9395
// FIXME: We'll need the actual default parameter expression.
9496
result.PrintDefaultParameterPlaceholder = false;
9597

@@ -494,7 +496,10 @@ class PrintAST : public ASTVisitor<PrintAST> {
494496

495497
void printAccess(const ValueDecl *D) {
496498
if (!Options.PrintAccess || !D->hasAccess() ||
497-
D->getAttrs().hasAttribute<AccessControlAttr>())
499+
isa<ProtocolDecl>(D->getDeclContext()))
500+
return;
501+
if (D->getAttrs().hasAttribute<AccessControlAttr>() &&
502+
!llvm::is_contained(Options.ExcludeAttrList, DAK_AccessControl))
498503
return;
499504

500505
printAccess(D->getFormalAccess());

test/IDE/print_synthesized_extensions.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,13 +315,13 @@ extension S13 : P5 {
315315
// CHECK11-NEXT: }</synthesized>
316316

317317
// CHECK12: <decl:Protocol>public protocol <loc>P6</loc> {
318-
// CHECK12-NEXT: <decl:Func(HasDefault)>public func <loc>foo1()</loc></decl>
319-
// CHECK12-NEXT: <decl:Func>public func <loc>foo2()</loc></decl>
318+
// CHECK12-NEXT: <decl:Func(HasDefault)>func <loc>foo1()</loc></decl>
319+
// CHECK12-NEXT: <decl:Func>func <loc>foo2()</loc></decl>
320320
// CHECK12-NEXT: }</decl>
321321

322322
// CHECK13: <decl:Protocol>public protocol <loc>P7</loc> {
323323
// CHECK13-NEXT: <decl:AssociatedType>associatedtype <loc>T1</loc></decl>
324-
// CHECK13-NEXT: <decl:Func(HasDefault)>public func <loc>f1(<decl:Param>t: <ref:GenericTypeParam>Self</ref>.T1</decl>)</loc></decl>
324+
// CHECK13-NEXT: <decl:Func(HasDefault)>func <loc>f1(<decl:Param>t: <ref:GenericTypeParam>Self</ref>.T1</decl>)</loc></decl>
325325
// CHECK13-NEXT: }</decl>
326326

327327
// CHECK13: <decl:Extension>extension <loc><ref:Protocol>P7</ref></loc> {

test/ModuleInterface/access-filter.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,7 @@ extension PublicProto {
6060
@usableFromInline internal func ufiMethod() {}
6161
} // CHECK: {{^[}]$}}
6262

63-
// FIXME: We shouldn't print access on extensions in textual interface files.
64-
// CHECK: {{^}}public extension PublicProto {{[{]$}}
63+
// CHECK: {{^}}extension PublicProto {{[{]$}}
6564
public extension PublicProto {
6665
// CHECK: public func publicExtPublicMethod(){{$}}
6766
func publicExtPublicMethod() {}

0 commit comments

Comments
 (0)