From 42e230b4fe4fee99b4632df9038b293b315ddcc9 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 8 Sep 2021 10:03:55 -0500 Subject: [PATCH] renamed type_check_or_auto_cast --- bin/onyx | Bin 430992 -> 430992 bytes include/astnodes.h | 3 ++- src/astnodes.c | 23 +++++++++++++++-------- src/checker.c | 43 +++++++++++++++++++++---------------------- src/polymorph.c | 2 +- src/utils.c | 4 ++-- 6 files changed, 41 insertions(+), 34 deletions(-) diff --git a/bin/onyx b/bin/onyx index 17501404afe787b8fd019d66eddfcccd842ff85a..878738106bf2d562850938ee6dcecb94d040ee49 100755 GIT binary patch delta 95386 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

iu+OQL; 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

1rXF36VYdK{sKtkX&m= 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%0DyTQyE7i3(6XTB7CGbp5$LmmpsFXce><_glYW_Px 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 B)|mhR diff --git a/include/astnodes.h b/include/astnodes.h index e15aef54..9aa31d08 100644 --- a/include/astnodes.h +++ b/include/astnodes.h @@ -1336,7 +1336,8 @@ void clone_function_body(bh_allocator a, AstFunction* dest, AstFunction* source) void promote_numlit_to_larger(AstNumLit* num); b32 convert_numlit_to_type(AstNumLit* num, Type* type); -b32 type_check_or_auto_cast(AstTyped** pnode, Type* type); +#define unify_node_and_type(node, type) (unify_node_and_type_((node), (type), 1)) +b32 unify_node_and_type_(AstTyped** pnode, Type* type, b32 permanent); Type* resolve_expression_type(AstTyped* node); i64 get_expression_integer_value(AstTyped* node); diff --git a/src/astnodes.c b/src/astnodes.c index f67d92b0..b8ae2c6c 100644 --- a/src/astnodes.c +++ b/src/astnodes.c @@ -504,18 +504,20 @@ b32 convert_numlit_to_type(AstNumLit* num, Type* type) { } // NOTE: Returns 0 if it was not possible to make the types compatible. -b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { +b32 unify_node_and_type_(AstTyped** pnode, Type* type, b32 permanent) { AstTyped* node = *pnode; if (type == NULL) return 0; if (node == NULL) return 0; - // if (node_is_type((AstNode *) node)) return 0; - if (node->kind == Ast_Kind_Struct_Literal && node->type_node == NULL) { if (node->entity != NULL) return 1; if (type->kind == Type_Kind_VarArgs) type = type->VarArgs.elem; if (!type_is_sl_constructable(type)) return 0; + // If this shouldn't make permanent changes and submit entities, + // just assume that it works and don't submit the entities. + if (!permanent) return 1; + node->type = type; add_entities_for_node(NULL, (AstNode *) node, NULL, NULL); @@ -524,6 +526,11 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { if (node->kind == Ast_Kind_Array_Literal && node->type_node == NULL) { if (node->entity != NULL) return 1; + + // If this shouldn't make permanent changes and submit entities, + // just assume that it works and don't submit the entities. + if (!permanent) return 1; + node->type = type; node->flags |= Ast_Flag_Array_Literal_Typed; @@ -595,7 +602,7 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { if (expr_count != type->Compound.count) return 0; fori (i, 0, (i64) expr_count) { - if (!type_check_or_auto_cast(&compound->exprs[i], type->Compound.types[i])) return 0; + if (!unify_node_and_type_(&compound->exprs[i], type->Compound.types[i], permanent)) return 0; } compound->type = type_build_compound_type(context.ast_alloc, compound); @@ -605,8 +612,8 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { else if (node->kind == Ast_Kind_If_Expression) { AstIfExpression* if_expr = (AstIfExpression *) node; - b32 true_success = type_check_or_auto_cast(&if_expr->true_expr, type); - b32 false_success = type_check_or_auto_cast(&if_expr->false_expr, type); + b32 true_success = unify_node_and_type_(&if_expr->true_expr, type, permanent); + b32 false_success = unify_node_and_type_(&if_expr->false_expr, type, permanent); if (true_success && false_success) { if_expr->type = type; @@ -618,7 +625,7 @@ b32 type_check_or_auto_cast(AstTyped** pnode, Type* type) { } else if (node->kind == Ast_Kind_Alias) { AstAlias* alias = (AstAlias *) node; - return type_check_or_auto_cast(&alias->alias, type); + return unify_node_and_type_(&alias->alias, type, permanent); } return 0; @@ -641,7 +648,7 @@ Type* resolve_expression_type(AstTyped* node) { AstIfExpression* if_expr = (AstIfExpression *) node; Type* ltype = resolve_expression_type(if_expr->true_expr); - type_check_or_auto_cast(&if_expr->false_expr, ltype); + unify_node_and_type(&if_expr->false_expr, ltype); if_expr->type = ltype; } diff --git a/src/checker.c b/src/checker.c index 80a9e46c..becae7ad 100644 --- a/src/checker.c +++ b/src/checker.c @@ -151,7 +151,7 @@ CheckStatus check_return(AstReturn* retnode) { return Check_Success; } - if (!type_check_or_auto_cast(&retnode->expr, *expected_return_type)) { + if (!unify_node_and_type(&retnode->expr, *expected_return_type)) { ERROR_(retnode->token->pos, "Expected to return a value of type '%s', returning value of type '%s'.", type_get_name(*expected_return_type), @@ -363,7 +363,7 @@ CheckStatus check_switch(AstSwitch* switchnode) { continue; } - if (!type_check_or_auto_cast(value, resolved_expr_type)) { + if (!unify_node_and_type(value, resolved_expr_type)) { OnyxToken* tkn = sc->block->token; if ((*value)->token) tkn = (*value)->token; @@ -650,7 +650,7 @@ CheckStatus check_call(AstCall** pcall) { } if (arg_pos >= (u32) bh_arr_length(arg_arr)) goto type_checking_done; - if (!type_check_or_auto_cast(&arg_arr[arg_pos]->value, formal_params[arg_pos])) { + if (!unify_node_and_type(&arg_arr[arg_pos]->value, formal_params[arg_pos])) { ERROR_(arg_arr[arg_pos]->token->pos, "The procedure '%s' expects a value of type '%s' for %d%s parameter, got '%s'.", get_function_name(callee), @@ -665,11 +665,10 @@ CheckStatus check_call(AstCall** pcall) { } case AS_Expecting_Typed_VA: { + if (variadic_type->id == any_type->id) call->va_kind = VA_Kind_Any; if (arg_pos >= (u32) bh_arr_length(arg_arr)) goto type_checking_done; if (variadic_type->id == any_type->id) { - call->va_kind = VA_Kind_Any; - resolve_expression_type(arg_arr[arg_pos]->value); arg_arr[arg_pos]->va_kind = VA_Kind_Any; break; @@ -677,7 +676,7 @@ CheckStatus check_call(AstCall** pcall) { call->va_kind = VA_Kind_Typed; - if (!type_check_or_auto_cast(&arg_arr[arg_pos]->value, variadic_type)) { + if (!unify_node_and_type(&arg_arr[arg_pos]->value, variadic_type)) { onyx_report_error(arg_arr[arg_pos]->token->pos, "The procedure '%s' expects a value of type '%s' for the variadic parameter, '%b', got '%s'.", get_function_name(callee), @@ -872,7 +871,7 @@ CheckStatus check_binaryop_assignment(AstBinaryOp** pbinop) { } } - if (!type_check_or_auto_cast(&binop->right, binop->left->type)) { + if (!unify_node_and_type(&binop->right, binop->left->type)) { ERROR_(binop->token->pos, "Cannot assign value of type '%s' to a '%s'.", node_get_type_name(binop->right), @@ -955,8 +954,8 @@ CheckStatus check_binaryop_compare(AstBinaryOp** pbinop) { b32 right_ac = node_is_auto_cast((AstNode *) binop->right); if (left_ac && right_ac) ERROR(binop->token->pos, "Cannot have auto cast on both sides of binary operator."); - else if (type_check_or_auto_cast(&binop->left, rtype)); - else if (type_check_or_auto_cast(&binop->right, ltype)); + else if (unify_node_and_type(&binop->left, rtype)); + else if (unify_node_and_type(&binop->right, ltype)); else { ERROR_(binop->token->pos, "Cannot compare '%s' to '%s'.", @@ -1018,8 +1017,8 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop) { // :UnaryFieldAccessIsGross if (binop->left->kind == Ast_Kind_Unary_Field_Access || binop->right->kind == Ast_Kind_Unary_Field_Access) { - if (type_check_or_auto_cast(&binop->left, binop->right->type)); - else if (type_check_or_auto_cast(&binop->right, binop->left->type)); + if (unify_node_and_type(&binop->left, binop->right->type)); + else if (unify_node_and_type(&binop->right, binop->left->type)); else { report_bad_binaryop(binop); return Check_Error; @@ -1088,8 +1087,8 @@ CheckStatus check_binaryop(AstBinaryOp** pbinop) { if (left_ac && right_ac) { ERROR(binop->token->pos, "Cannot have auto cast on both sides of binary operator."); } - else if (type_check_or_auto_cast(&binop->left, binop->right->type)); - else if (type_check_or_auto_cast(&binop->right, binop->left->type)); + else if (unify_node_and_type(&binop->left, binop->right->type)); + else if (unify_node_and_type(&binop->right, binop->left->type)); else { ERROR_(binop->token->pos, "Mismatched types for binary operation '%s'. left: '%s', right: '%s'.", @@ -1242,7 +1241,7 @@ CheckStatus check_struct_literal(AstStructLiteral* sl) { YIELD_((*actual)->token->pos, "Trying to resolve type of expression for member '%s'.", smem.name); } - if (!type_check_or_auto_cast(actual, formal)) { + if (!unify_node_and_type(actual, formal)) { ERROR_(sl->token->pos, "Mismatched types for %d%s member named '%s', expected '%s', got '%s'.", i + 1, bh_num_suffix(i + 1), @@ -1298,7 +1297,7 @@ CheckStatus check_array_literal(AstArrayLiteral* al) { al->flags &= ((*expr)->flags & Ast_Flag_Comptime) | (al->flags &~ Ast_Flag_Comptime); - if (!type_check_or_auto_cast(expr, elem_type)) { + if (!unify_node_and_type(expr, elem_type)) { ERROR_((*expr)->token->pos, "Mismatched types for value of in array, expected '%s', got '%s'.", type_get_name(elem_type), node_get_type_name(*expr)); @@ -1317,14 +1316,14 @@ CheckStatus check_range_literal(AstRangeLiteral** prange) { StructMember smem; type_lookup_member(expected_range_type, "low", &smem); - if (!type_check_or_auto_cast(&range->low, smem.type)) { + if (!unify_node_and_type(&range->low, smem.type)) { ERROR_(range->token->pos, "Expected left side of range to be a 32-bit integer, got '%s'.", node_get_type_name(range->low)); } type_lookup_member(expected_range_type, "high", &smem); - if (!type_check_or_auto_cast(&range->high, smem.type)) { + if (!unify_node_and_type(&range->high, smem.type)) { ERROR_(range->token->pos, "Expected right side of range to be a 32-bit integer, got '%s'.", node_get_type_name(range->high)); @@ -1355,7 +1354,7 @@ CheckStatus check_if_expression(AstIfExpression* if_expr) { CHECK(expression, &if_expr->true_expr); CHECK(expression, &if_expr->false_expr); - if (!type_check_or_auto_cast(&if_expr->cond, &basic_types[Basic_Kind_Bool])) { + if (!unify_node_and_type(&if_expr->cond, &basic_types[Basic_Kind_Bool])) { ERROR_(if_expr->token->pos, "If-expression expected boolean for condition, got '%s'.", type_get_name(if_expr->cond->type)); } @@ -1826,7 +1825,7 @@ CheckStatus check_insert_directive(AstDirectiveInsert** pinsert) { Type* code_type = type_build_from_ast(context.ast_alloc, builtin_code_type); - if (!type_check_or_auto_cast(&insert->code_expr, code_type)) { + if (!unify_node_and_type(&insert->code_expr, code_type)) { ERROR_(insert->token->pos, "#insert expected a value of type 'Code', got '%s'.", type_get_name(insert->code_expr->type)); } @@ -2041,7 +2040,7 @@ CheckStatus check_struct_defaults(AstStructType* s_node) { if ((*smem)->initial_value && *(*smem)->initial_value) { CHECK(expression, (*smem)->initial_value); - if (!type_check_or_auto_cast((*smem)->initial_value, (*smem)->type)) { + if (!unify_node_and_type((*smem)->initial_value, (*smem)->type)) { ERROR_((*(*smem)->initial_value)->token->pos, "Mismatched type for initial value, expected '%s', got '%s'.", type_get_name((*smem)->type), @@ -2127,7 +2126,7 @@ CheckStatus check_function_header(AstFunction* func) { // when the default value is used as an argument and then has to be checked against // the parameter type - brendanfh 2021/01/06 // if (param->default_value != NULL) { - // if (!type_check_or_auto_cast(¶m->default_value, param->local->type)) { + // if (!unify_node_and_type(¶m->default_value, param->local->type)) { // onyx_report_error(param->local->token->pos, // "Expected default value of type '%s', was of type '%s'.", // type_get_name(param->local->type), @@ -2169,7 +2168,7 @@ CheckStatus check_memres(AstMemRes* memres) { if (memres->type != NULL) { Type* memres_type = memres->type; - if (!type_check_or_auto_cast(&memres->initial_value, memres_type)) { + if (!unify_node_and_type(&memres->initial_value, memres_type)) { ERROR_(memres->token->pos, "Cannot assign value of type '%s' to a '%s'.", node_get_type_name(memres->initial_value), diff --git a/src/polymorph.c b/src/polymorph.c index d072b98e..e5e70971 100644 --- a/src/polymorph.c +++ b/src/polymorph.c @@ -494,7 +494,7 @@ static void solve_for_polymorphic_param_value(PolySolveResult* resolved, AstPoly param->type = type_build_from_ast(context.ast_alloc, param->type_expr); assert(param->type); - if (!type_check_or_auto_cast(&value, param->type)) { + if (!unify_node_and_type(&value, param->type)) { if (err_msg) *err_msg = bh_aprintf(global_scratch_allocator, "The procedure '%s' expects a value of type '%s' for baked %d%s parameter, got '%s'.", get_function_name(pp->base_func), diff --git a/src/utils.c b/src/utils.c index ea4eadeb..017ed8c5 100644 --- a/src/utils.c +++ b/src/utils.c @@ -389,7 +389,7 @@ AstTyped* find_matching_overload_by_arguments(bh_arr(OverloadOption) overloads, value = &((AstArgument *) *value)->value; } - if (!type_check_or_auto_cast(value, type_to_match)) { + if (!unify_node_and_type_(value, type_to_match, 0)) { all_arguments_work = 0; break; } @@ -419,7 +419,7 @@ AstTyped* find_matching_overload_by_type(bh_arr(OverloadOption) overloads, Type* AstTyped* node = (AstTyped *) entry->key; if (node->kind == Ast_Kind_Overloaded_Function) continue; - if (type_check_or_auto_cast(&node, type)) { + if (unify_node_and_type(&node, type)) { matched_overload = node; break; } -- 2.25.1