Skip to content

Commit 7e523fd

Browse files
committed
Introduce @_package attribute
1 parent 8bc71f0 commit 7e523fd

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
@@ -43,6 +43,7 @@ extension Parser {
4343
case _objcRuntimeName
4444
case _optimize
4545
case _originallyDefinedIn
46+
case _package
4647
case _private
4748
case _projectedValueProperty
4849
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)
@@ -243,6 +246,15 @@ extension Parser {
243246
return parseAttribute(argumentMode: .required) { parser in
244247
return .specializeArguments(parser.parseSpecializeAttributeSpecList())
245248
}
249+
case ._package:
250+
return parseAttribute(argumentMode: .required) { parser in
251+
// TODO: @_package(...) argument parsing
252+
if !parser.at(.rightParen) {
253+
return .token(parser.consumeAnyToken())
254+
} else {
255+
return .token(parser.missingToken(.identifier))
256+
}
257+
}
246258
case ._private:
247259
return parseAttribute(argumentMode: .required) { parser in
248260
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: UInt8, Hashable {
8585

8686
case _originallyDefinedIn
8787

88+
case _package
89+
8890
case _PackageDescription
8991

9092
case _private
@@ -655,6 +657,8 @@ public enum Keyword: UInt8, Hashable {
655657
self = ._effects
656658
case "_forward":
657659
self = ._forward
660+
case "_package":
661+
self = ._package
658662
case "_private":
659663
self = ._private
660664
case "_Trivial":

gyb_syntax_support/AttributeKinds.py

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

714719
# Schema for declaration modifiers:

0 commit comments

Comments
 (0)