Skip to content

Commit 7c905d3

Browse files
authored
SwiftSyntax: add WithStatementsSyntax trait and make all names consistent. NFC (#14782)
1 parent 2f810b4 commit 7c905d3

File tree

6 files changed

+18
-8
lines changed

6 files changed

+18
-8
lines changed

lib/Parse/SyntaxParsingContext.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ void finalizeSourceFile(RootContextData &RootData,
250250
if (SF.hasSyntaxRoot()) {
251251
auto SourceRaw = SF.getSyntaxRoot().getRaw();
252252
auto Decls =
253-
SourceRaw->getChild(SourceFileSyntax::Cursor::Items)->getLayout();
253+
SourceRaw->getChild(SourceFileSyntax::Cursor::Statements)->getLayout();
254254
std::copy(Decls.begin(), Decls.end(), std::back_inserter(AllTopLevel));
255255
EOFToken = SourceRaw->getChild(SourceFileSyntax::Cursor::EOFToken);
256256
}

utils/gyb_syntax_support/CommonNodes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
# code-block -> '{' stmt-list '}'
3434
Node('CodeBlock', kind='Syntax',
35-
traits=['Braced'],
35+
traits=['Braced', 'WithStatements'],
3636
children=[
3737
Child('LeftBrace', kind='LeftBraceToken'),
3838
Child('Statements', kind='CodeBlockItemList'),

utils/gyb_syntax_support/DeclNodes.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,19 +86,21 @@
8686

8787
# else-if-directive-clause -> '#elseif' expr stmt-list
8888
Node('ElseifDirectiveClause', kind='Syntax',
89+
traits=['WithStatements'],
8990
children=[
9091
Child('PoundElseif', kind='PoundElseifToken'),
9192
Child('Condition', kind='Expr'),
92-
Child('Body', kind='CodeBlockItemList'),
93+
Child('Statements', kind='CodeBlockItemList'),
9394
]),
9495

9596
# if-config-decl -> '#if' expr stmt-list else-if-directive-clause-list
9697
# else-clause? '#endif'
9798
Node('IfConfigDecl', kind='Decl',
99+
traits=['WithStatements'],
98100
children=[
99101
Child('PoundIf', kind='PoundIfToken'),
100102
Child('Condition', kind='Expr'),
101-
Child('Body', kind='CodeBlockItemList'),
103+
Child('Statements', kind='CodeBlockItemList'),
102104
Child('ElseifDirectiveClauses', kind='ElseifDirectiveClauseList',
103105
is_optional=True),
104106
Child('ElseClause', kind='ElseDirectiveClause',
@@ -254,8 +256,9 @@
254256

255257
# source-file = code-block-item-list eof
256258
Node('SourceFile', kind='Syntax',
259+
traits=['WithStatements'],
257260
children=[
258-
Child('Items', kind='CodeBlockItemList'),
261+
Child('Statements', kind='CodeBlockItemList'),
259262
Child('EOFToken', kind='EOFToken')
260263
]),
261264

@@ -408,9 +411,10 @@
408411

409412
# else-directive-clause -> '#else' stmt-list
410413
Node('ElseDirectiveClause', kind='Syntax',
414+
traits=['WithStatements'],
411415
children=[
412416
Child('PoundElse', kind='PoundElseToken'),
413-
Child('Body', kind='CodeBlockItemList'),
417+
Child('Statements', kind='CodeBlockItemList'),
414418
]),
415419

416420
# access-level-modifier -> 'private' | 'private' '(' 'set' ')'

utils/gyb_syntax_support/ExprNodes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@
392392
]),
393393

394394
Node('ClosureExpr', kind='Expr',
395-
traits=['Braced'],
395+
traits=['Braced', 'WithStatements'],
396396
children=[
397397
Child('LeftBrace', kind='LeftBraceToken'),
398398
Child('Signature', kind='ClosureSignature', is_optional=True),

utils/gyb_syntax_support/StmtNodes.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,10 @@
255255
# switch-case -> switch-case-label stmt-list
256256
# | default-label stmt-list
257257
Node('SwitchCase', kind='Syntax',
258+
traits=['WithStatements'],
258259
children=[
259260
Child('Label', kind='Syntax'),
260-
Child('Body', kind='CodeBlockItemList'),
261+
Child('Statements', kind='CodeBlockItemList'),
261262
]),
262263

263264
# switch-default-label -> 'default' ':'

utils/gyb_syntax_support/Traits.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,9 @@ def __init__(self, trait_name, children):
4848
Child('LabelName', kind='IdentifierToken', is_optional=True),
4949
Child('LabelColon', kind='ColonToken', is_optional=True),
5050
]),
51+
52+
Trait('WithStatements',
53+
children=[
54+
Child('Statements', kind='CodeBlockItemList'),
55+
]),
5156
]

0 commit comments

Comments
 (0)