mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-03-22 21:37:22 +00:00
LibCpp: Support parsing empty return statements
This commit is contained in:
@@ -249,7 +249,8 @@ void StringLiteral::dump(size_t indent) const
|
||||
void ReturnStatement::dump(size_t indent) const
|
||||
{
|
||||
ASTNode::dump(indent);
|
||||
m_value->dump(indent + 1);
|
||||
if(m_value)
|
||||
m_value->dump(indent + 1);
|
||||
}
|
||||
|
||||
void EnumDeclaration::dump(size_t indent) const
|
||||
|
||||
@@ -901,9 +901,11 @@ NonnullRefPtr<ReturnStatement> Parser::parse_return_statement(ASTNode& parent)
|
||||
SCOPE_LOGGER();
|
||||
auto return_statement = create_ast_node<ReturnStatement>(parent, position(), {});
|
||||
consume(Token::Type::Keyword);
|
||||
auto expression = parse_expression(*return_statement);
|
||||
return_statement->m_value = expression;
|
||||
return_statement->set_end(expression->end());
|
||||
if(!peek(Token::Type::Semicolon).has_value()) {
|
||||
auto expression = parse_expression(*return_statement);
|
||||
return_statement->m_value = expression;
|
||||
}
|
||||
return_statement->set_end(position());
|
||||
return return_statement;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user