1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:48:12 +00:00

LibCpp: Support parsing empty return statements

This commit is contained in:
Itamar 2021-03-27 19:18:18 +03:00 committed by Andreas Kling
parent 0babb39cae
commit ee35fc0da3
2 changed files with 7 additions and 4 deletions

View file

@ -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;
}