fixed: optional semicolons on naked return statement
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 8 Feb 2024 22:03:25 +0000 (16:03 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 8 Feb 2024 22:03:25 +0000 (16:03 -0600)
compiler/src/parser.c

index a2aee9e411416cae239068d75285744e87e3e8ba..e39791182d43d21aa8223426773dabb4c8ad9092 100644 (file)
@@ -1663,7 +1663,7 @@ static AstReturn* parse_return_stmt(OnyxParser* parser) {
 
     AstTyped* expr = NULL;
 
-    if (parser->curr->type != ';') {
+    if (parser->curr->type != ';' && parser->curr->type != Token_Type_Inserted_Semicolon) {
         expr = parse_compound_expression(parser, 0);
 
         if (expr == NULL || expr == (AstTyped *) &error_node) {
@@ -2363,6 +2363,7 @@ static AstStructType* parse_struct(OnyxParser* parser) {
 
         if (parse_possible_tag(parser)) {
             consume_token_if_next(parser, ';');
+            continue;
         }
 
         if (parse_possible_directive(parser, "persist")) {