Changed order of error checking
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 25 Jun 2020 19:44:52 +0000 (14:44 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 25 Jun 2020 19:44:52 +0000 (14:44 -0500)
constant is now checked before lval

onyx
src/onyxtypecheck.c

diff --git a/onyx b/onyx
index e335e3561697b6305fb1080a3daecb34eab417b5..5c15d2c20b759bd57e4503abac3e67f971a98151 100755 (executable)
Binary files a/onyx and b/onyx differ
index 86110e5f75b1c650288c40b572cbf52ffc80da37..65c687c5522b8e6db42c03f993a7c8f8025dbf8a 100644 (file)
@@ -21,17 +21,17 @@ static void typecheck_assignment(OnyxSemPassState* state, OnyxAstNode* assign) {
         return;
     }
 
-    if ((assign->left->flags & ONYX_AST_FLAG_LVAL) == 0) {
+    if ((assign->left->flags & ONYX_AST_FLAG_CONST) != 0 && assign->left->type->is_known) {
         onyx_message_add(state->msgs,
-                ONYX_MESSAGE_TYPE_NOT_LVAL,
+                ONYX_MESSAGE_TYPE_ASSIGN_CONST,
                 assign->token->pos,
                 assign->left->token->token, assign->left->token->length);
         return;
     }
 
-    if ((assign->left->flags & ONYX_AST_FLAG_CONST) != 0 && assign->left->type->is_known) {
+    if ((assign->left->flags & ONYX_AST_FLAG_LVAL) == 0) {
         onyx_message_add(state->msgs,
-                ONYX_MESSAGE_TYPE_ASSIGN_CONST,
+                ONYX_MESSAGE_TYPE_NOT_LVAL,
                 assign->token->pos,
                 assign->left->token->token, assign->left->token->length);
         return;