auto attrs = parser.parse_outer_attributes ();
auto expr = parser.parse_expr (std::move (attrs));
- if (expr == nullptr)
- {
- for (auto error : parser.get_errors ())
- error.emit ();
- return AST::Fragment::create_error ();
- }
+ for (auto error : parser.get_errors ())
+ error.emit ();
+ if (!expr)
+ return AST::Fragment::create_error ();
// FIXME: make this an error for some edititons
if (parser.peek_current_token ()->get_id () == SEMICOLON)
auto type = parser.parse_type (true);
for (auto err : parser.get_errors ())
err.emit ();
+ if (!type)
+ return AST::Fragment::create_error ();
auto end = lexer.get_offs ();
for (auto err : parser.get_errors ())
err.emit ();
+ if (!pattern)
+ return AST::Fragment::create_error ();
+
auto end = lexer.get_offs ();
return AST::Fragment ({std::move (pattern)},