fixed: ability to `#export` things that are not procedures
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 4 Dec 2023 00:03:43 +0000 (18:03 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 4 Dec 2023 00:03:43 +0000 (18:03 -0600)
compiler/src/checker.c

index b0bc672ad1dba1c2b63b14f4a668d9601187eb24..2d7f01264120161267971a07300215d20ddfa2d6 100644 (file)
@@ -3477,6 +3477,11 @@ CheckStatus check_process_directive(AstNode* directive) {
         if (exported->entity && exported->entity->state <= Entity_State_Check_Types)
             YIELD(directive->token->pos, "Waiting for exported type to be known.");
 
+        if (exported->kind != Ast_Kind_Function) {
+            onyx_report_error(export->token->pos, Error_Critical, "Cannot export something that is not a procedure.");
+            ERROR(exported->token->pos, "Here is the thing being exported that is not a procedure.");
+        }
+
         CHECK(expression, &export->export_name_expr);
 
         if (export->export_name_expr->kind != Ast_Kind_StrLit) {