Skip to content

Commit 5f9140d

Browse files
committed
Introduce @_package attribute
1 parent 37d0027 commit 5f9140d

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

CodeGeneration/Sources/SyntaxSupport/KeywordSpec.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public let KEYWORDS: [KeywordSpec] = [
6767
KeywordSpec("_opaqueReturnTypeOf"),
6868
KeywordSpec("_optimize"),
6969
KeywordSpec("_originallyDefinedIn"),
70+
KeywordSpec("_package"),
7071
KeywordSpec("_PackageDescription"),
7172
KeywordSpec("_private"),
7273
KeywordSpec("_projectedValueProperty"),

Sources/SwiftParser/Attributes.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ extension Parser {
4444
case _objcRuntimeName
4545
case _optimize
4646
case _originallyDefinedIn
47+
case _package
4748
case _private
4849
case _projectedValueProperty
4950
case _semantics
@@ -78,6 +79,7 @@ extension Parser {
7879
case RawTokenKindMatch(._objcRuntimeName): self = ._objcRuntimeName
7980
case RawTokenKindMatch(._optimize): self = ._optimize
8081
case RawTokenKindMatch(._originallyDefinedIn): self = ._originallyDefinedIn
82+
case RawTokenKindMatch(._package): self = ._package
8183
case RawTokenKindMatch(._private): self = ._private
8284
case RawTokenKindMatch(._projectedValueProperty): self = ._projectedValueProperty
8385
case RawTokenKindMatch(._semantics): self = ._semantics
@@ -116,6 +118,7 @@ extension Parser {
116118
case ._objcRuntimeName: return .keyword(._objcRuntimeName)
117119
case ._optimize: return .keyword(._optimize)
118120
case ._originallyDefinedIn: return .keyword(._originallyDefinedIn)
121+
case ._package: return .keyword(._package)
119122
case ._private: return .keyword(._private)
120123
case ._projectedValueProperty: return .keyword(._projectedValueProperty)
121124
case ._semantics: return .keyword(._semantics)
@@ -238,6 +241,15 @@ extension Parser {
238241
return parseAttribute(argumentMode: .required) { parser in
239242
return .specializeArguments(parser.parseSpecializeAttributeSpecList())
240243
}
244+
case ._package:
245+
return parseAttribute(argumentMode: .required) { parser in
246+
// TODO: @_package(...) argument parsing
247+
if !parser.at(.rightParen) {
248+
return .token(parser.consumeAnyToken())
249+
} else {
250+
return .token(parser.missingToken(.identifier))
251+
}
252+
}
241253
case ._private:
242254
return parseAttribute(argumentMode: .required) { parser in
243255
return .underscorePrivateAttributeArguments(parser.parseUnderscorePrivateAttributeArguments())

Sources/SwiftSyntax/generated/Keyword.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ public enum Keyword: StaticString {
8585

8686
case _originallyDefinedIn
8787

88+
case _package
89+
8890
case _PackageDescription
8991

9092
case _private
@@ -617,6 +619,8 @@ public enum Keyword: StaticString {
617619
self = ._effects
618620
case "_forward":
619621
self = ._forward
622+
case "_package":
623+
self = ._package
620624
case "_private":
621625
self = ._private
622626
case "_Trivial":

gyb_syntax_support/AttributeKinds.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,12 @@ def __init__(self, name, swift_name=None):
707707
SimpleDeclAttribute('runtimeMetadata', 'RuntimeMetadata',
708708
OnStruct, OnClass,
709709
ABIBreakingToAdd, ABIBreakingToRemove, APIBreakingToAdd, APIBreakingToRemove,
710-
code=139)
710+
code=139),
711+
712+
DeclAttribute('_package', 'Package',
713+
OnImport, UserInaccessible,
714+
APIStableToAdd, APIStableToRemove, ABIStableToAdd, ABIStableToRemove, NotSerialized,
715+
code=140),
711716
]
712717

713718
# Schema for declaration modifiers:

0 commit comments

Comments
 (0)