File tree Expand file tree Collapse file tree 5 files changed +709
-789
lines changed Expand file tree Collapse file tree 5 files changed +709
-789
lines changed Original file line number Diff line number Diff line change @@ -90,6 +90,8 @@ PrintOptions PrintOptions::printTextualInterfaceFile() {
90
90
// the default to 'public' and mark the 'internal' things.
91
91
result.PrintAccess = true ;
92
92
93
+ result.ExcludeAttrList .push_back (DAK_AccessControl);
94
+
93
95
// FIXME: We'll need the actual default parameter expression.
94
96
result.PrintDefaultParameterPlaceholder = false ;
95
97
@@ -494,7 +496,10 @@ class PrintAST : public ASTVisitor<PrintAST> {
494
496
495
497
void printAccess (const ValueDecl *D) {
496
498
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))
498
503
return ;
499
504
500
505
printAccess (D->getFormalAccess ());
Original file line number Diff line number Diff line change @@ -315,13 +315,13 @@ extension S13 : P5 {
315
315
// CHECK11-NEXT: }</synthesized>
316
316
317
317
// 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>
320
320
// CHECK12-NEXT: }</decl>
321
321
322
322
// CHECK13: <decl:Protocol>public protocol <loc>P7</loc> {
323
323
// 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>
325
325
// CHECK13-NEXT: }</decl>
326
326
327
327
// CHECK13: <decl:Extension>extension <loc><ref:Protocol>P7</ref></loc> {
Original file line number Diff line number Diff line change @@ -60,8 +60,7 @@ extension PublicProto {
60
60
@usableFromInline internal func ufiMethod( ) { }
61
61
} // CHECK: {{^[}]$}}
62
62
63
- // FIXME: We shouldn't print access on extensions in textual interface files.
64
- // CHECK: {{^}}public extension PublicProto {{[{]$}}
63
+ // CHECK: {{^}}extension PublicProto {{[{]$}}
65
64
public extension PublicProto {
66
65
// CHECK: public func publicExtPublicMethod(){{$}}
67
66
func publicExtPublicMethod( ) { }
You can’t perform that action at this time.
0 commit comments