Skip to content

Commit 6cba943

Browse files
hborlaahoppen
authored andcommitted
Add new syntax nodes for initializes and accesses effects in init accessors.
1 parent 10e9a4d commit 6cba943

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

CodeGeneration/Sources/SyntaxSupport/DeclNodes.swift

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,74 @@ public let DECL_NODES: [Node] = [
6363
]
6464
),
6565

66+
Node(
67+
name: "AccessesEffect",
68+
nameForDiagnostics: "accesses effect",
69+
kind: "Syntax",
70+
children: [
71+
Child(
72+
name: "AccessesKeyword",
73+
kind: .token(choices: [.keyword(text: "accesses")])
74+
),
75+
Child(
76+
name: "LeftParen",
77+
kind: .token(choices: [.token(tokenKind: "LeftParenToken")])
78+
),
79+
Child(
80+
name: "PropertyList",
81+
kind: .collection(kind: "TupleExprElementList", collectionElementName: "Property"),
82+
nameForDiagnostics: "properties"
83+
),
84+
Child(
85+
name: "RightParen",
86+
kind: .token(choices: [.token(tokenKind: "RightParenToken")])
87+
),
88+
]
89+
),
90+
91+
Node(
92+
name: "InitializesEffect",
93+
nameForDiagnostics: "initializes effect",
94+
kind: "Syntax",
95+
children: [
96+
Child(
97+
name: "InitializesKeyword",
98+
kind: .token(choices: [.keyword(text: "initializes")])
99+
),
100+
Child(
101+
name: "LeftParen",
102+
kind: .token(choices: [.token(tokenKind: "LeftParenToken")])
103+
),
104+
Child(
105+
name: "PropertyList",
106+
kind: .collection(kind: "TupleExprElementList", collectionElementName: "Property"),
107+
nameForDiagnostics: "properties"
108+
),
109+
Child(
110+
name: "RightParen",
111+
kind: .token(choices: [.token(tokenKind: "RightParenToken")])
112+
),
113+
]
114+
),
115+
116+
Node(
117+
name: "AccessorInitEffects",
118+
nameForDiagnostics: "init accessor effects",
119+
kind: "Syntax",
120+
children: [
121+
Child(
122+
name: "InitializesEffect",
123+
kind: .node(kind: "InitializesEffect"),
124+
isOptional: true
125+
),
126+
Child(
127+
name: "AccessesEffect",
128+
kind: .node(kind: "AccessesEffect"),
129+
isOptional: true
130+
),
131+
]
132+
),
133+
66134
Node(
67135
name: "AccessorDecl",
68136
nameForDiagnostics: "accessor",
@@ -99,6 +167,11 @@ public let DECL_NODES: [Node] = [
99167
kind: .node(kind: "AccessorEffectSpecifiers"),
100168
isOptional: true
101169
),
170+
Child(
171+
name: "InitEffects",
172+
kind: .node(kind: "AccessorInitEffects"),
173+
isOptional: true
174+
),
102175
Child(
103176
name: "Body",
104177
kind: .node(kind: "CodeBlock"),

CodeGeneration/Sources/SyntaxSupport/KeywordSpec.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ public let KEYWORDS: [KeywordSpec] = [
8383
KeywordSpec("_typeEraser"),
8484
KeywordSpec("_unavailableFromAsync"),
8585
KeywordSpec("_UnknownLayout"),
86+
KeywordSpec("accesses"),
8687
KeywordSpec("actor"),
8788
KeywordSpec("addressWithNativeOwner"),
8889
KeywordSpec("addressWithOwner"),
@@ -148,6 +149,7 @@ public let KEYWORDS: [KeywordSpec] = [
148149
KeywordSpec("indirect"),
149150
KeywordSpec("infix"),
150151
KeywordSpec("init", isLexerClassified: true),
152+
KeywordSpec("initializes"),
151153
KeywordSpec("inline"),
152154
KeywordSpec("inout", isLexerClassified: true, requiresTrailingSpace: true),
153155
KeywordSpec("internal", isLexerClassified: true, requiresTrailingSpace: true),

0 commit comments

Comments
 (0)