From ca9b85e6b89e16a545cdacf38cdeaf13395b6675 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 29 Sep 2020 22:19:26 -0500 Subject: [PATCH] added auto casting on assignment and proper checking on boolean not --- onyx | Bin 735368 -> 735392 bytes src/onyxchecker.c | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/onyx b/onyx index f046cfd1decc3408d585fed83e754c5285d7936e..3e0aae99d384a217deb2fc83505ee34bc1da4124 100755 GIT binary patch delta 39545 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 MjviA|8{6Ce2mL>W9smFU delta 39420 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 Vr#Ed~U9Pmn8W$;z%)z#%{|^JDR;&O3 diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 4b1a3261..407a60bc 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -430,7 +430,7 @@ b32 check_call(AstCall* call) { ArgState arg_state = AS_Expecting_Exact; i32 arg_pos = 0; - while (1) { + while (1) { switch (arg_state) { case AS_Expecting_Exact: { if (arg_pos >= callee->type->Function.param_count) goto type_checking_done; @@ -444,7 +444,7 @@ b32 check_call(AstCall* call) { // CLEANUP POTENTIAL BUG if the builtin_vararg_type_type is ever rebuilt if (formal_params[arg_pos] == builtin_vararg_type_type) { - arg_state = AS_Expecting_Untyped_VA; + arg_state = AS_Expecting_Untyped_VA; continue; } @@ -466,7 +466,7 @@ b32 check_call(AstCall* call) { case AS_Expecting_Typed_VA: { call->va_kind = VA_Kind_Typed; - + if (arg_pos >= bh_arr_length(arg_arr)) goto type_checking_done; if (!type_check_or_auto_cast(arg_arr[arg_pos]->value, variadic_type)) { onyx_report_error(arg_arr[arg_pos]->token->pos, @@ -581,7 +581,7 @@ b32 check_binop_assignment(AstBinaryOp* binop, b32 assignment_is_ok) { if (check_binaryop(&binop_node, 0)) return 1; } - if (!types_are_compatible(binop->right->type, binop->left->type)) { + if (!type_check_or_auto_cast(binop->right, binop->left->type)) { onyx_report_error(binop->token->pos, "Cannot assign value of type '%s' to a '%s'.", type_get_name(binop->right->type), @@ -820,6 +820,15 @@ b32 check_unaryop(AstUnaryOp** punop) { unaryop->type = unaryop->expr->type; } + if (unaryop->operation == Unary_Op_Not) { + if (!type_is_bool(unaryop->expr->type)) { + onyx_report_error(unaryop->token->pos, + "Bool negation operator expected bool type, got '%s'.", + type_get_name(unaryop->expr->type)); + return 1; + } + } + if (unaryop->operation == Unary_Op_Bitwise_Not) { if (!type_is_integer(unaryop->expr->type)) { onyx_report_error(unaryop->token->pos, -- 2.25.1