Skip to content

Commit 976d10e

Browse files
authored
Merge pull request #1156 from apple/es-pkg-acl
Add 'package' access modifier contextual keyword Resolves rdar://103462581
2 parents e048c1c + 3200bf0 commit 976d10e

File tree

6 files changed

+25
-1
lines changed

6 files changed

+25
-1
lines changed

CodeGeneration/Sources/SyntaxSupport/gyb_generated/AttributeKinds.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1625,6 +1625,9 @@ public let DECL_MODIFIER_KINDS: [Attribute] = [
16251625
DeclAttributeAlias(name: "public",
16261626
className: "AccessControl",
16271627
swiftName: "publicKeyword"),
1628+
ContextualDeclAttributeAlias(name: "package",
1629+
className: "AccessControl",
1630+
swiftName: "package"),
16281631
ContextualDeclAttributeAlias(name: "open",
16291632
className: "AccessControl",
16301633
swiftName: "open"),

Sources/SwiftParser/Declarations.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ extension DeclarationModifier {
2121
.nonmutating, .optional, .override, .postfix, .prefix, .reasync,
2222
.required, .rethrows, .staticKeyword, .weak:
2323
return false
24-
case .fileprivateKeyword, .internalKeyword, .open, .privateKeyword,
24+
case .fileprivateKeyword, .internalKeyword, .package, .open, .privateKeyword,
2525
.publicKeyword, .unowned:
2626
return true
2727
}

Sources/SwiftParser/Modifiers.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ extension Parser {
2424
(.internalKeyword, _)?,
2525
(.publicKeyword, _)?:
2626
elements.append(parseAccessLevelModifier())
27+
case (.package, _)?:
28+
elements.append(parsePackageAccessLevelModifier())
2729
case (.open, _)?:
2830
elements.append(parseOpenAccessLevelModifier())
2931
case (.staticKeyword, let handle)?:
@@ -129,6 +131,17 @@ extension Parser {
129131
)
130132
}
131133

134+
mutating func parsePackageAccessLevelModifier() -> RawDeclModifierSyntax {
135+
let (unexpectedBeforeName, name) = self.expectContextualKeyword("package")
136+
let details = self.parseAccessModifierDetails()
137+
return RawDeclModifierSyntax(
138+
unexpectedBeforeName,
139+
name: name,
140+
detail: details,
141+
arena: self.arena
142+
)
143+
}
144+
132145
mutating func parseOpenAccessLevelModifier() -> RawDeclModifierSyntax {
133146
let (unexpectedBeforeName, name) = self.expectContextualKeyword("open")
134147
let details = self.parseAccessModifierDetails()

Sources/SwiftParser/RawTokenKindSubset.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ enum ContextualDeclKeyword: SyntaxText, ContextualKeywords {
201201
case mutating = "mutating"
202202
case nonisolated = "nonisolated"
203203
case nonmutating = "nonmutating"
204+
case package = "package"
204205
case open = "open"
205206
case optional = "optional"
206207
case override = "override"

Sources/SwiftParser/generated/DeclarationModifier.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ enum DeclarationModifier: SyntaxText, ContextualKeywords, RawTokenKindSubset {
5555

5656
case publicKeyword = "public"
5757

58+
case package = "package"
59+
5860
case open = "open"
5961

6062
case __setter_access = "__setter_access"
@@ -142,6 +144,8 @@ enum DeclarationModifier: SyntaxText, ContextualKeywords, RawTokenKindSubset {
142144
return .internalKeyword
143145
case .publicKeyword:
144146
return .publicKeyword
147+
case .package:
148+
return .identifier
145149
case .open:
146150
return .identifier
147151
case .__setter_access:
@@ -199,6 +203,8 @@ enum DeclarationModifier: SyntaxText, ContextualKeywords, RawTokenKindSubset {
199203
return "convenience"
200204
case .override:
201205
return "override"
206+
case .package:
207+
return "package"
202208
case .open:
203209
return "open"
204210
case .__setter_access:

gyb_syntax_support/AttributeKinds.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,7 @@ def __init__(self, name, swift_name=None):
820820
DeclAttributeAlias('fileprivate', 'AccessControl', swift_name='fileprivateKeyword'),
821821
DeclAttributeAlias('internal', 'AccessControl', swift_name='internalKeyword'),
822822
DeclAttributeAlias('public', 'AccessControl', swift_name='publicKeyword'),
823+
ContextualDeclAttributeAlias('package', 'AccessControl'),
823824
ContextualDeclAttributeAlias('open', 'AccessControl'),
824825
DeclAttribute('__setter_access', 'SetterAccess',
825826
OnVar, OnSubscript,

0 commit comments

Comments
 (0)