From 8bae15fb5414d74b75f6377ad8bb18586b20f021 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 8 Sep 2021 22:44:23 -0500 Subject: [PATCH] memres bugfix and renamed poorly named function --- bin/onyx | Bin 431272 -> 431256 bytes core/random.onyx | 2 +- include/astnodes.h | 2 +- src/checker.c | 4 ++-- src/utils.c | 12 +++++++----- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/bin/onyx b/bin/onyx index 89f949768f848bf9905667ff3e952adf8c4b5c69..0dd04a8bae64e6e891461ae585b16f5496c452c1 100755 GIT binary patch delta 35799 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 delta 35757 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

I$n#L2VoP8nn#TgFfkCsk09r-hRCax!}-uKfJ#B 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 HFq8iQ>!Pu) diff --git a/core/random.onyx b/core/random.onyx index 85ba22c0..bd8ba8b3 100644 --- a/core/random.onyx +++ b/core/random.onyx @@ -1,6 +1,6 @@ package core.random -#private_file seed : i64 = 867530932187 +#private_file seed : i64 = 8675309 #private_file RANDOM_MULTIPLIER :: 25214903917 #private_file RANDOM_INCREMENT :: cast(i64) 11 diff --git a/include/astnodes.h b/include/astnodes.h index c11c782f..a3d0c4b9 100644 --- a/include/astnodes.h +++ b/include/astnodes.h @@ -1370,7 +1370,7 @@ void arguments_deep_clone(bh_allocator a, Arguments* dest, Arguments* src); void arguments_remove_baked(Arguments* args); b32 check_arguments_against_type(Arguments* args, TypeFunction* func_type, VarArgKind* va_kind, OnyxToken* location, char* func_name, struct OnyxError* error); -i32 function_get_minimum_argument_count(TypeFunction* type, Arguments* args); +i32 get_argument_buffer_size(TypeFunction* type, Arguments* args); // GROSS: Using void* to avoid having to cast everything. const char* node_get_type_name(void* node); diff --git a/src/checker.c b/src/checker.c index 3340b2e6..b7674fcd 100644 --- a/src/checker.c +++ b/src/checker.c @@ -518,7 +518,7 @@ CheckStatus check_call(AstCall** pcall) { AstFunction* callee=NULL; CHECK(resolve_callee, call, (AstTyped **) &callee); - i32 arg_count = function_get_minimum_argument_count(&callee->type->Function, &call->args); + i32 arg_count = get_argument_buffer_size(&callee->type->Function, &call->args); arguments_ensure_length(&call->args, arg_count); char* err_msg = NULL; @@ -2050,7 +2050,6 @@ CheckStatus check_memres_type(AstMemRes* memres) { CheckStatus check_memres(AstMemRes* memres) { if (memres->initial_value != NULL) { CHECK(expression, &memres->initial_value); - resolve_expression_type(memres->initial_value); if ((memres->initial_value->flags & Ast_Flag_Comptime) == 0) { ERROR(memres->initial_value->token->pos, "Top level expressions must be compile time known."); @@ -2066,6 +2065,7 @@ CheckStatus check_memres(AstMemRes* memres) { } } else { + resolve_expression_type(memres->initial_value); if (memres->initial_value->type == NULL && memres->initial_value->entity != NULL && memres->initial_value->entity->state <= Entity_State_Check_Types) { YIELD(memres->token->pos, "Waiting for global type to be constructed."); } diff --git a/src/utils.c b/src/utils.c index 7c63d9c9..2b2feb1f 100644 --- a/src/utils.c +++ b/src/utils.c @@ -368,7 +368,7 @@ AstTyped* find_matching_overload_by_arguments(bh_arr(OverloadOption) overloads, assert(overload->type->kind == Type_Kind_Function); arguments_remove_baked(&args); - arguments_ensure_length(&args, function_get_minimum_argument_count(&overload->type->Function, &args)); + arguments_ensure_length(&args, get_argument_buffer_size(&overload->type->Function, &args)); // NOTE: If the arguments cannot be placed successfully in the parameters list if (!fill_in_arguments(&args, (AstNode *) overload, NULL)) continue; @@ -690,10 +690,12 @@ static i32 non_baked_argument_count(Arguments* args) { return count; } -i32 function_get_minimum_argument_count(TypeFunction* type, Arguments* args) { +i32 get_argument_buffer_size(TypeFunction* type, Arguments* args) { i32 non_vararg_param_count = (i32) type->param_count; - if (non_vararg_param_count > 0 && type->params[type->param_count - 1] == builtin_vararg_type_type) - non_vararg_param_count--; + if (non_vararg_param_count > 0) { + if (type->params[type->param_count - 1] == builtin_vararg_type_type) non_vararg_param_count--; + if (type->params[type->param_count - 1]->kind == Type_Kind_VarArgs) non_vararg_param_count--; + } return bh_max(non_vararg_param_count, non_baked_argument_count(args)); } @@ -792,7 +794,7 @@ b32 check_arguments_against_type(Arguments* args, TypeFunction* func_type, VarAr if (func_name == NULL) func_name = "UNKNOWN FUNCTION"; bh_arr(AstArgument *) arg_arr = (bh_arr(AstArgument *)) args->values; - i32 arg_count = function_get_minimum_argument_count(func_type, args); + i32 arg_count = get_argument_buffer_size(func_type, args); Type **formal_params = func_type->params; Type* variadic_type = NULL; -- 2.25.1