From 10f5052ba9d7008804be14597fb44eb2d4772dc0 Mon Sep 17 00:00:00 2001 From: elsh Date: Fri, 24 Jan 2025 06:53:26 -0800 Subject: [PATCH] Fix parsing `package` in @_documentation(visibility: package) --- Sources/SwiftParser/Attributes.swift | 3 +++ Tests/SwiftParserTest/AttributeTests.swift | 1 + 2 files changed, 4 insertions(+) diff --git a/Sources/SwiftParser/Attributes.swift b/Sources/SwiftParser/Attributes.swift index 65ea4646ff4..ede06a40129 100644 --- a/Sources/SwiftParser/Attributes.swift +++ b/Sources/SwiftParser/Attributes.swift @@ -1170,6 +1170,7 @@ extension Parser { case `private` case `fileprivate` case `internal` + case `package` case `public` case `open` @@ -1178,6 +1179,7 @@ extension Parser { case .private: return .keyword(.private) case .fileprivate: return .keyword(.fileprivate) case .internal: return .keyword(.internal) + case .package: return .keyword(.package) case .public: return .keyword(.public) case .open: return .keyword(.open) } @@ -1188,6 +1190,7 @@ extension Parser { case TokenSpec(.private): self = .private case TokenSpec(.fileprivate): self = .fileprivate case TokenSpec(.internal): self = .internal + case TokenSpec(.package): self = .package case TokenSpec(.public): self = .public case TokenSpec(.open): self = .open default: return nil diff --git a/Tests/SwiftParserTest/AttributeTests.swift b/Tests/SwiftParserTest/AttributeTests.swift index 7df9983e7b9..852a420b9e4 100644 --- a/Tests/SwiftParserTest/AttributeTests.swift +++ b/Tests/SwiftParserTest/AttributeTests.swift @@ -671,6 +671,7 @@ final class AttributeTests: ParserTestCase { func testDocumentationAttribute() { assertParse("@_documentation(visibility: internal) @_exported import A") + assertParse("@_documentation(visibility: package) @objc final public class Klass {}") assertParse("@_documentation(metadata: cool_stuff) public class SomeClass {}") assertParse(#"@_documentation(metadata: "this is a longer string") public class OtherClass {}"#) assertParse(