Merge pull request #18772 from jrose-apple/access-denied

Stop printing access on extensions and protocol requirements
This commit is contained in:
Jordan Rose
2018-08-16 18:24:58 -07:00
committed by GitHub
5 changed files with 876 additions and 956 deletions

View File

@@ -90,6 +90,8 @@ PrintOptions PrintOptions::printTextualInterfaceFile() {
// the default to 'public' and mark the 'internal' things.
result.PrintAccess = true;
result.ExcludeAttrList.push_back(DAK_AccessControl);
// FIXME: We'll need the actual default parameter expression.
result.PrintDefaultParameterPlaceholder = false;
@@ -494,7 +496,10 @@ class PrintAST : public ASTVisitor<PrintAST> {
void printAccess(const ValueDecl *D) {
if (!Options.PrintAccess || !D->hasAccess() ||
D->getAttrs().hasAttribute<AccessControlAttr>())
isa<ProtocolDecl>(D->getDeclContext()))
return;
if (D->getAttrs().hasAttribute<AccessControlAttr>() &&
!llvm::is_contained(Options.ExcludeAttrList, DAK_AccessControl))
return;
printAccess(D->getFormalAccess());

View File

@@ -315,13 +315,13 @@ extension S13 : P5 {
// CHECK11-NEXT: }</synthesized>
// CHECK12: <decl:Protocol>public protocol <loc>P6</loc> {
// CHECK12-NEXT: <decl:Func(HasDefault)>public func <loc>foo1()</loc></decl>
// CHECK12-NEXT: <decl:Func>public func <loc>foo2()</loc></decl>
// CHECK12-NEXT: <decl:Func(HasDefault)>func <loc>foo1()</loc></decl>
// CHECK12-NEXT: <decl:Func>func <loc>foo2()</loc></decl>
// CHECK12-NEXT: }</decl>
// CHECK13: <decl:Protocol>public protocol <loc>P7</loc> {
// CHECK13-NEXT: <decl:AssociatedType>associatedtype <loc>T1</loc></decl>
// CHECK13-NEXT: <decl:Func(HasDefault)>public func <loc>f1(<decl:Param>t: <ref:GenericTypeParam>Self</ref>.T1</decl>)</loc></decl>
// CHECK13-NEXT: <decl:Func(HasDefault)>func <loc>f1(<decl:Param>t: <ref:GenericTypeParam>Self</ref>.T1</decl>)</loc></decl>
// CHECK13-NEXT: }</decl>
// CHECK13: <decl:Extension>extension <loc><ref:Protocol>P7</ref></loc> {

View File

@@ -60,8 +60,7 @@ extension PublicProto {
@usableFromInline internal func ufiMethod() {}
} // CHECK: {{^[}]$}}
// FIXME: We shouldn't print access on extensions in textual interface files.
// CHECK: {{^}}public extension PublicProto {{[{]$}}
// CHECK: {{^}}extension PublicProto {{[{]$}}
public extension PublicProto {
// CHECK: public func publicExtPublicMethod(){{$}}
func publicExtPublicMethod() {}

File diff suppressed because it is too large Load Diff

View File

@@ -122,9 +122,9 @@ public enum DC_PublicEnum {
private protocol EA_PrivateProtocol {
// CHECK: {{^}} associatedtype Foo
associatedtype Foo
// CHECK: fileprivate var Bar
// CHECK: {{^}} var Bar
var Bar: Int { get }
// CHECK: fileprivate func baz()
// CHECK: {{^}} func baz()
func baz()
} // CHECK: {{^[}]}}
@@ -132,9 +132,9 @@ private protocol EA_PrivateProtocol {
public protocol EB_PublicProtocol {
// CHECK: {{^}} associatedtype Foo
associatedtype Foo
// CHECK: public var Bar
// CHECK: {{^}} var Bar
var Bar: Int { get }
// CHECK: public func baz()
// CHECK: {{^}} func baz()
func baz()
} // CHECK: {{^[}]}}