diff --git a/src/symbol_table_parse.c b/src/symbol_table_parse.c
index 60b336cf1d1f4a0b866e36947acd76347f4af861..8f83643e4793493b62291a48715d5365131c52e4 100644
--- a/src/symbol_table_parse.c
+++ b/src/symbol_table_parse.c
@@ -160,7 +160,7 @@ int mcc_symbol_table_parse_statement(
             } else {
                 return 1;
             }
-        case MCC_AST_STATEMENT_TYPE_IF:;
+        case MCC_AST_STATEMENT_TYPE_IF:
             if(mcc_symbol_table_validate_expression(
                     statement->if_condition, symbol_table, ec) == 0) {
                 if (mcc_symbol_table_validate_condition_to_type_bool(
diff --git a/src/symbol_table_validate.c b/src/symbol_table_validate.c
index a602353b2193ab1bf3897aac935090e5fe4590fe..a69572044a7e872ccd7f9a7a2f38a40f377854a7 100644
--- a/src/symbol_table_validate.c
+++ b/src/symbol_table_validate.c
@@ -340,7 +340,7 @@ int binary_operator_contains_illegal_array(
         struct mcc_symbol_table *symbol_table,
         struct mcc_symbol_table_error_collector *ec
 ) {
-    if (expression -> identifier != NULL) {
+    if (expression -> type == MCC_AST_EXPRESSION_TYPE_IDENTIFIER && expression -> identifier != NULL) {
         struct mcc_symbol *s = mcc_symbol_table_get_symbol(symbol_table, expression->identifier->i_value);
 
         // this is a binary op with an array without index provided
@@ -371,8 +371,7 @@ int mcc_symbol_table_validate_binary_operator(
     }
 
     int illegal_array_op_lhs = binary_operator_contains_illegal_array(expression->lhs, symbol_table, ec);
-    int illegal_array_op_rhs = binary_operator_contains_illegal_array(expression->lhs, symbol_table, ec);
-
+    int illegal_array_op_rhs = binary_operator_contains_illegal_array(expression->rhs, symbol_table, ec);
     if(illegal_array_op_lhs || illegal_array_op_rhs) {
         return 1;
     }
@@ -437,7 +436,6 @@ int mcc_symbol_table_validate_expression(
     assert(symbol_table);
     assert(ec);
 
-
     switch(expression->type) {
         case MCC_AST_EXPRESSION_TYPE_IDENTIFIER:
             return mcc_symbol_table_validate_identifier(expression->identifier, symbol_table, ec);