Skip to content

Commit 1783e22

Browse files
authored
Merge pull request #61482 from ahoppen/ahoppen/unexpected-at-end
[libSyntax] Adjustments because nodes can have unexpected nodes at the end
2 parents e51f1ff + e006c24 commit 1783e22

11 files changed

+129
-50
lines changed

lib/Parse/ParseExpr.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,11 +1713,13 @@ ParserResult<Expr> Parser::parseExprPrimary(Diag<> ID, bool isExprBasic) {
17131713
ParsedPatternSyntax PatternNode =
17141714
ParsedSyntaxRecorder::makeIdentifierPattern(
17151715
/*UnexpectedNodes=*/None,
1716-
/*Identifier=*/SyntaxContext->popToken(), *SyntaxContext);
1716+
/*Identifier=*/SyntaxContext->popToken(),
1717+
/*UnexpectedNodes=*/None, *SyntaxContext);
17171718
ParsedExprSyntax ExprNode =
17181719
ParsedSyntaxRecorder::makeUnresolvedPatternExpr(
17191720
/*UnexpectedNodes=*/None,
1720-
/*Pattern=*/std::move(PatternNode), *SyntaxContext);
1721+
/*Pattern=*/std::move(PatternNode),
1722+
/*UnexpectedNodes=*/None, *SyntaxContext);
17211723
SyntaxContext->addSyntax(std::move(ExprNode));
17221724
}
17231725
return makeParserResult(new (Context) UnresolvedPatternExpr(pattern));

lib/Parse/ParseType.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ Parser::parseTypeSimpleOrComposition(Diag<> MessageID, ParseTypeReason reason) {
946946
/*UnexpectedNodes=*/None,
947947
/*Type=*/std::move(*synType),
948948
/*UnexpectedNodes=*/None,
949-
/*Ampersand=*/None, *SyntaxContext);
949+
/*Ampersand=*/None, /*UnexpectedNodes=*/None, *SyntaxContext);
950950
SyntaxContext->addSyntax(std::move(LastNode));
951951
}
952952
}

lib/Parse/ParsedSyntaxRecorder.cpp.gyb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ ParsedSyntaxRecorder::makeTupleTypeElement(ParsedTypeSyntax Type,
189189
/*Initializer=*/None,
190190
/*UnexpectedNodes=*/None,
191191
std::move(TrailingComma),
192+
/*UnexpectedNodes=*/None,
192193
SPCtx
193194
);
194195
}

lib/Parse/SyntaxParsingContext.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ void SyntaxParsingContext::collectNodesInPlace(SyntaxKind CollectionKind,
324324
static ParsedRawSyntaxNode finalizeSourceFile(RootContextData &RootData,
325325
MutableArrayRef<ParsedRawSyntaxNode> Parts) {
326326
ParsedRawSyntaxRecorder &Recorder = RootData.Recorder;
327-
ParsedRawSyntaxNode Layout[4];
327+
ParsedRawSyntaxNode Layout[5];
328328

329329
assert(!Parts.empty() && Parts.back().isToken(tok::eof));
330330
Layout[3] = std::move(Parts.back());
@@ -338,7 +338,7 @@ static ParsedRawSyntaxNode finalizeSourceFile(RootContextData &RootData,
338338
Layout[1] = Recorder.recordRawSyntax(SyntaxKind::CodeBlockItemList, Parts);
339339

340340
return Recorder.recordRawSyntax(SyntaxKind::SourceFile,
341-
llvm::makeMutableArrayRef(Layout, 4));
341+
llvm::makeMutableArrayRef(Layout, 5));
342342
}
343343

344344
OpaqueSyntaxNode SyntaxParsingContext::finalizeRoot() {

lib/Syntax/SyntaxFactory.cpp.gyb

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ TupleTypeSyntax SyntaxFactory::makeVoidTupleType() {
249249
/*UnexpectedNodes=*/None,
250250
/*Elements=*/makeBlankTupleTypeElementList(),
251251
/*UnexpectedNodes=*/None,
252-
/*RightParen=*/makeRightParenToken({}, {})
252+
/*RightParen=*/makeRightParenToken({}, {}),
253+
/*UnexpectedNodes=*/None
253254
);
254255
}
255256

@@ -274,7 +275,8 @@ SyntaxFactory::makeTupleTypeElement(llvm::Optional<TokenSyntax> Label,
274275
/*UnexpectedNodes=*/None,
275276
/*Intitializer=*/None,
276277
/*UnexpectedNodes=*/None,
277-
/*TrailingComma=*/TrailingComma
278+
/*TrailingComma=*/TrailingComma,
279+
/*UnexpectedNodes=*/None
278280
);
279281
}
280282

@@ -297,7 +299,8 @@ SyntaxFactory::makeTupleTypeElement(TypeSyntax Type,
297299
/*UnexpectedNodes=*/None,
298300
/*Initializer=*/None,
299301
/*UnexpectedNodes=*/None,
300-
/*TrailingComma=*/TrailingComma
302+
/*TrailingComma=*/TrailingComma,
303+
/*UnexpectedNodes=*/None
301304
);
302305
}
303306

@@ -314,7 +317,8 @@ SyntaxFactory::makeGenericParameter(TokenSyntax Name,
314317
/*UnexpectedNodes=*/None,
315318
/*InheritedType=*/None,
316319
/*UnexpectedNodes=*/None,
317-
/*TrailingComma=*/TrailingComma
320+
/*TrailingComma=*/TrailingComma,
321+
/*UnexpectedNodes=*/None
318322
);
319323
}
320324

@@ -330,7 +334,8 @@ TypeSyntax SyntaxFactory::makeTypeIdentifier(StringRef TypeName,
330334
/*UnexpectedNodes=*/None,
331335
/*Name=*/identifier,
332336
/*UnexpectedNodes=*/None,
333-
/*GenerigArgumentClause=*/None
337+
/*GenerigArgumentClause=*/None,
338+
/*UnexpectedNodes=*/None
334339
);
335340
}
336341

test/Syntax/Inputs/serialize_class_decl.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"presence": "Present"
3333
},
3434
null,
35+
null,
3536
null
3637
],
3738
"presence": "Present"
@@ -91,16 +92,19 @@
9192
"leadingTrivia": "",
9293
"trailingTrivia": "",
9394
"presence": "Present"
94-
}
95+
},
96+
null
9597
],
9698
"presence": "Present"
97-
}
99+
},
100+
null
98101
],
99102
"presence": "Present"
100103
},
101104
null,
102105
null,
103106
null,
107+
null,
104108
null
105109
],
106110
"presence": "Present"
@@ -117,7 +121,8 @@
117121
"leadingTrivia": "\n",
118122
"trailingTrivia": "",
119123
"presence": "Present"
120-
}
124+
},
125+
null
121126
],
122127
"presence": "Present"
123128
}

test/Syntax/Inputs/serialize_functions.json

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
"presence": "Present"
102102
},
103103
null,
104+
null,
104105
null
105106
],
106107
"presence": "Present"
@@ -110,6 +111,7 @@
110111
null,
111112
null,
112113
null,
114+
null,
113115
null
114116
],
115117
"presence": "Present"
@@ -125,7 +127,8 @@
125127
"leadingTrivia": "",
126128
"trailingTrivia": " ",
127129
"presence": "Present"
128-
}
130+
},
131+
null
129132
],
130133
"presence": "Present"
131134
},
@@ -134,6 +137,7 @@
134137
null,
135138
null,
136139
null,
140+
null,
137141
null
138142
],
139143
"presence": "Present"
@@ -167,16 +171,19 @@
167171
"leadingTrivia": "",
168172
"trailingTrivia": "",
169173
"presence": "Present"
170-
}
174+
},
175+
null
171176
],
172177
"presence": "Present"
173-
}
178+
},
179+
null
174180
],
175181
"presence": "Present"
176182
},
177183
null,
178184
null,
179185
null,
186+
null,
180187
null
181188
],
182189
"presence": "Present"
@@ -285,6 +292,7 @@
285292
"presence": "Present"
286293
},
287294
null,
295+
null,
288296
null
289297
],
290298
"presence": "Present"
@@ -294,6 +302,7 @@
294302
null,
295303
null,
296304
null,
305+
null,
297306
null
298307
],
299308
"presence": "Present"
@@ -309,7 +318,8 @@
309318
"leadingTrivia": "",
310319
"trailingTrivia": " ",
311320
"presence": "Present"
312-
}
321+
},
322+
null
313323
],
314324
"presence": "Present"
315325
},
@@ -318,6 +328,7 @@
318328
null,
319329
null,
320330
null,
331+
null,
321332
null
322333
],
323334
"presence": "Present"
@@ -351,16 +362,19 @@
351362
"leadingTrivia": "",
352363
"trailingTrivia": "",
353364
"presence": "Present"
354-
}
365+
},
366+
null
355367
],
356368
"presence": "Present"
357-
}
369+
},
370+
null
358371
],
359372
"presence": "Present"
360373
},
361374
null,
362375
null,
363376
null,
377+
null,
364378
null
365379
],
366380
"presence": "Present"
@@ -441,6 +455,7 @@
441455
"presence": "Present"
442456
},
443457
null,
458+
null,
444459
null
445460
],
446461
"presence": "Present"
@@ -491,6 +506,7 @@
491506
"presence": "Present"
492507
},
493508
null,
509+
null,
494510
null
495511
],
496512
"presence": "Present"
@@ -500,6 +516,7 @@
500516
null,
501517
null,
502518
null,
519+
null,
503520
null
504521
],
505522
"presence": "Present"
@@ -515,7 +532,8 @@
515532
"leadingTrivia": "",
516533
"trailingTrivia": " ",
517534
"presence": "Present"
518-
}
535+
},
536+
null
519537
],
520538
"presence": "Present"
521539
},
@@ -524,6 +542,7 @@
524542
null,
525543
null,
526544
null,
545+
null,
527546
null
528547
],
529548
"presence": "Present"
@@ -557,16 +576,19 @@
557576
"leadingTrivia": "",
558577
"trailingTrivia": "",
559578
"presence": "Present"
560-
}
579+
},
580+
null
561581
],
562582
"presence": "Present"
563-
}
583+
},
584+
null
564585
],
565586
"presence": "Present"
566587
},
567588
null,
568589
null,
569590
null,
591+
null,
570592
null
571593
],
572594
"presence": "Present"
@@ -647,6 +669,7 @@
647669
"presence": "Present"
648670
},
649671
null,
672+
null,
650673
null
651674
],
652675
"presence": "Present"
@@ -697,6 +720,7 @@
697720
"presence": "Present"
698721
},
699722
null,
723+
null,
700724
null
701725
],
702726
"presence": "Present"
@@ -706,6 +730,7 @@
706730
null,
707731
null,
708732
null,
733+
null,
709734
null
710735
],
711736
"presence": "Present"
@@ -721,7 +746,8 @@
721746
"leadingTrivia": "",
722747
"trailingTrivia": " ",
723748
"presence": "Present"
724-
}
749+
},
750+
null
725751
],
726752
"presence": "Present"
727753
},
@@ -730,6 +756,7 @@
730756
null,
731757
null,
732758
null,
759+
null,
733760
null
734761
],
735762
"presence": "Present"
@@ -763,16 +790,19 @@
763790
"leadingTrivia": "",
764791
"trailingTrivia": "",
765792
"presence": "Present"
766-
}
793+
},
794+
null
767795
],
768796
"presence": "Present"
769-
}
797+
},
798+
null
770799
],
771800
"presence": "Present"
772801
},
773802
null,
774803
null,
775804
null,
805+
null,
776806
null
777807
],
778808
"presence": "Present"
@@ -789,7 +819,8 @@
789819
"leadingTrivia": "\n",
790820
"trailingTrivia": "",
791821
"presence": "Present"
792-
}
822+
},
823+
null
793824
],
794825
"presence": "Present"
795826
}

0 commit comments

Comments
 (0)