mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 09:47:35 +00:00
LibCpp: Support parsing empty return statements
This commit is contained in:
parent
0babb39cae
commit
ee35fc0da3
2 changed files with 7 additions and 4 deletions
|
@ -249,7 +249,8 @@ void StringLiteral::dump(size_t indent) const
|
||||||
void ReturnStatement::dump(size_t indent) const
|
void ReturnStatement::dump(size_t indent) const
|
||||||
{
|
{
|
||||||
ASTNode::dump(indent);
|
ASTNode::dump(indent);
|
||||||
m_value->dump(indent + 1);
|
if(m_value)
|
||||||
|
m_value->dump(indent + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnumDeclaration::dump(size_t indent) const
|
void EnumDeclaration::dump(size_t indent) const
|
||||||
|
|
|
@ -901,9 +901,11 @@ NonnullRefPtr<ReturnStatement> Parser::parse_return_statement(ASTNode& parent)
|
||||||
SCOPE_LOGGER();
|
SCOPE_LOGGER();
|
||||||
auto return_statement = create_ast_node<ReturnStatement>(parent, position(), {});
|
auto return_statement = create_ast_node<ReturnStatement>(parent, position(), {});
|
||||||
consume(Token::Type::Keyword);
|
consume(Token::Type::Keyword);
|
||||||
auto expression = parse_expression(*return_statement);
|
if(!peek(Token::Type::Semicolon).has_value()) {
|
||||||
return_statement->m_value = expression;
|
auto expression = parse_expression(*return_statement);
|
||||||
return_statement->set_end(expression->end());
|
return_statement->m_value = expression;
|
||||||
|
}
|
||||||
|
return_statement->set_end(position());
|
||||||
return return_statement;
|
return return_statement;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue