Skip to content

Commit 1c7f800

Browse files
ahoppennkcsgexi
authored andcommitted
[libSyntax] Fix places in which RawSyntax nodes were created without an arena
1 parent 49a9b4e commit 1c7f800

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
@@ -1291,7 +1291,8 @@ Parser::parseExprPostfixSuffix(ParserResult<Expr> Result, bool isExprBasic,
12911291
if (SyntaxContext->isEnabled()) {
12921292
// Add dummy blank argument list to the call expression syntax.
12931293
SyntaxContext->addSyntax(
1294-
SyntaxFactory::makeBlankFunctionCallArgumentList());
1294+
SyntaxFactory::makeBlankFunctionCallArgumentList(
1295+
&SyntaxContext->getArena()));
12951296
}
12961297

12971298
ParserResult<Expr> closure =
@@ -1583,10 +1584,10 @@ ParserResult<Expr> Parser::parseExprPrimary(Diag<> ID, bool isExprBasic) {
15831584
: VarDecl::Specifier::Var;
15841585
auto pattern = createBindingFromPattern(loc, name, specifier);
15851586
if (SyntaxContext->isEnabled()) {
1586-
PatternSyntax PatternNode =
1587-
SyntaxFactory::makeIdentifierPattern(SyntaxContext->popToken());
1588-
ExprSyntax ExprNode =
1589-
SyntaxFactory::makeUnresolvedPatternExpr(PatternNode);
1587+
PatternSyntax PatternNode = SyntaxFactory::makeIdentifierPattern(
1588+
SyntaxContext->popToken(), &SyntaxContext->getArena());
1589+
ExprSyntax ExprNode = SyntaxFactory::makeUnresolvedPatternExpr(
1590+
PatternNode, &SyntaxContext->getArena());
15901591
SyntaxContext->addSyntax(ExprNode);
15911592
}
15921593
return makeParserResult(new (Context) UnresolvedPatternExpr(pattern));
@@ -1721,7 +1722,8 @@ ParserResult<Expr> Parser::parseExprPrimary(Diag<> ID, bool isExprBasic) {
17211722
if (SyntaxContext->isEnabled()) {
17221723
// Add dummy blank argument list to the call expression syntax.
17231724
SyntaxContext->addSyntax(
1724-
SyntaxFactory::makeBlankFunctionCallArgumentList());
1725+
SyntaxFactory::makeBlankFunctionCallArgumentList(
1726+
&SyntaxContext->getArena()));
17251727
}
17261728

17271729
ParserResult<Expr> closure =
@@ -2087,7 +2089,8 @@ DeclName Parser::parseUnqualifiedDeclName(bool afterDot,
20872089
SyntaxParsingContext ArgsCtxt(SyntaxContext, SyntaxKind::DeclNameArguments);
20882090
consumeToken(tok::l_paren);
20892091
if (SyntaxContext->isEnabled())
2090-
SyntaxContext->addSyntax(SyntaxFactory::makeBlankDeclNameArgumentList());
2092+
SyntaxContext->addSyntax(SyntaxFactory::makeBlankDeclNameArgumentList(
2093+
&SyntaxContext->getArena()));
20912094
consumeToken(tok::r_paren);
20922095
loc = DeclNameLoc(baseNameLoc);
20932096
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)