Skip to content

Commit cc4cc4c

Browse files
committed
[libSyntax] Fix places in which RawSyntax nodes were created without an arena
1 parent d1f1238 commit cc4cc4c

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

lib/Parse/ParseExpr.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,7 +1259,8 @@ Parser::parseExprPostfixSuffix(ParserResult<Expr> Result, bool isExprBasic,
12591259
if (SyntaxContext->isEnabled()) {
12601260
// Add dummy blank argument list to the call expression syntax.
12611261
SyntaxContext->addSyntax(
1262-
SyntaxFactory::makeBlankFunctionCallArgumentList());
1262+
SyntaxFactory::makeBlankFunctionCallArgumentList(
1263+
&SyntaxContext->getArena()));
12631264
}
12641265

12651266
ParserResult<Expr> closure =
@@ -1547,10 +1548,10 @@ ParserResult<Expr> Parser::parseExprPrimary(Diag<> ID, bool isExprBasic) {
15471548
: VarDecl::Specifier::Var;
15481549
auto pattern = createBindingFromPattern(loc, name, specifier);
15491550
if (SyntaxContext->isEnabled()) {
1550-
PatternSyntax PatternNode =
1551-
SyntaxFactory::makeIdentifierPattern(SyntaxContext->popToken());
1552-
ExprSyntax ExprNode =
1553-
SyntaxFactory::makeUnresolvedPatternExpr(PatternNode);
1551+
PatternSyntax PatternNode = SyntaxFactory::makeIdentifierPattern(
1552+
SyntaxContext->popToken(), &SyntaxContext->getArena());
1553+
ExprSyntax ExprNode = SyntaxFactory::makeUnresolvedPatternExpr(
1554+
PatternNode, &SyntaxContext->getArena());
15541555
SyntaxContext->addSyntax(ExprNode);
15551556
}
15561557
return makeParserResult(new (Context) UnresolvedPatternExpr(pattern));
@@ -1658,7 +1659,8 @@ ParserResult<Expr> Parser::parseExprPrimary(Diag<> ID, bool isExprBasic) {
16581659
if (SyntaxContext->isEnabled()) {
16591660
// Add dummy blank argument list to the call expression syntax.
16601661
SyntaxContext->addSyntax(
1661-
SyntaxFactory::makeBlankFunctionCallArgumentList());
1662+
SyntaxFactory::makeBlankFunctionCallArgumentList(
1663+
&SyntaxContext->getArena()));
16621664
}
16631665

16641666
ParserResult<Expr> closure =
@@ -2028,7 +2030,8 @@ DeclName Parser::parseUnqualifiedDeclName(bool afterDot,
20282030
SyntaxParsingContext ArgsCtxt(SyntaxContext, SyntaxKind::DeclNameArguments);
20292031
consumeToken(tok::l_paren);
20302032
if (SyntaxContext->isEnabled())
2031-
SyntaxContext->addSyntax(SyntaxFactory::makeBlankDeclNameArgumentList());
2033+
SyntaxContext->addSyntax(SyntaxFactory::makeBlankDeclNameArgumentList(
2034+
&SyntaxContext->getArena()));
20322035
consumeToken(tok::r_paren);
20332036
loc = DeclNameLoc(baseNameLoc);
20342037
SmallVector<Identifier, 2> argumentLabels;

lib/Parse/ParseType.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,8 @@ ParserResult<TypeRepr> Parser::parseType(Diag<> MessageID,
438438
.useArguments(TupleTypeNode->getElements())
439439
.useRightParen(TupleTypeNode->getRightParen());
440440
} else {
441-
Builder
442-
.addTupleTypeElement(SyntaxFactory::makeTupleTypeElement(InputNode));
441+
Builder.addTupleTypeElement(SyntaxFactory::makeTupleTypeElement(
442+
InputNode, /*TrailingComma=*/None, &Context.getSyntaxArena()));
443443
}
444444
SyntaxContext->addSyntax(Builder.build());
445445
}
@@ -719,7 +719,8 @@ Parser::parseTypeSimpleOrComposition(Diag<> MessageID,
719719

720720
if (SyntaxContext->isEnabled() && Status.isSuccess()) {
721721
auto LastNode = SyntaxFactory::makeCompositionTypeElement(
722-
SyntaxContext->popIf<TypeSyntax>().getValue(), None);
722+
SyntaxContext->popIf<TypeSyntax>().getValue(), None,
723+
&SyntaxContext->getArena());
723724
SyntaxContext->addSyntax(LastNode);
724725
}
725726
SyntaxContext->collectNodesInPlace(SyntaxKind::CompositionTypeElementList);

0 commit comments

Comments
 (0)