Fix parsing of expression statements

This commit is contained in:
Sofia 2026-04-09 17:55:09 +03:00
parent 8e2bc3a7f7
commit ed51ee61ed

View File

@ -135,8 +135,7 @@ namespace parsing {
auto ret = new AST::ReturnStatement{ std::move(expression) };
return new std::unique_ptr<AST::Statement>{ ret };
}
else if (inner.peek().type == token::Type::Ident) {
if (auto init = parse_init_statement(inner); init.ok()) {
else if (auto init = parse_init_statement(inner); init.ok()) {
stream.m_position = inner.m_position;
return new std::unique_ptr<AST::Statement>{ init.unwrap() };
}
@ -146,10 +145,6 @@ namespace parsing {
auto expr_statement = new AST::ExpressionStatement{ expr.unwrap() };
return new std::unique_ptr<AST::Statement>{ expr_statement };
}
else {
throw std::runtime_error("Expected initialization statement");
}
}
else {
throw std::runtime_error("Expected return-keyword");
}