From cdb2adfe39bdf78e471bb4683686f17f2db87b75 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 8 Sep 2021 18:37:36 -0500 Subject: [PATCH] overloaded procedures are more powerful; bugfixes --- bin/onyx | Bin 430992 -> 431272 bytes include/astnodes.h | 7 ++ include/errors.h | 2 + src/astnodes.c | 8 +- src/checker.c | 148 +++-------------------- src/errors.c | 17 +++ src/utils.c | 206 +++++++++++++++++++++++++++----- src/wasm.c | 18 +-- tests/named_arguments_test | 3 + tests/named_arguments_test.onyx | 18 +-- 10 files changed, 249 insertions(+), 178 deletions(-) diff --git a/bin/onyx b/bin/onyx index 878738106bf2d562850938ee6dcecb94d040ee49..89f949768f848bf9905667ff3e952adf8c4b5c69 100755 GIT binary patch delta 122279 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 Qih6&wzHCCf))@Ex4_XYNCIA2c delta 121510 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 diff --git a/include/astnodes.h b/include/astnodes.h index 9aa31d08..c11c782f 100644 --- a/include/astnodes.h +++ b/include/astnodes.h @@ -3,6 +3,7 @@ #include "lex.h" #include "types.h" +#include "errors.h" #define AST_NODES \ NODE(Node) \ @@ -507,6 +508,9 @@ typedef struct Arguments Arguments; struct Arguments { bh_arr(AstTyped *) values; bh_arr(AstNamedValue *) named_values; + + // How many arguments were not baked. + i32 used_argument_count; }; @@ -1364,6 +1368,9 @@ void arguments_copy(Arguments* dest, Arguments* src); void arguments_clone(Arguments* dest, Arguments* src); 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); // GROSS: Using void* to avoid having to cast everything. const char* node_get_type_name(void* node); diff --git a/include/errors.h b/include/errors.h index 41aebdde..6d85fe6b 100644 --- a/include/errors.h +++ b/include/errors.h @@ -24,7 +24,9 @@ typedef struct OnyxErrors { extern OnyxErrors msgs; void onyx_errors_init(bh_arr(bh_file_contents)* files); +void onyx_submit_error(OnyxError error); void onyx_report_error(OnyxFilePos pos, char * format, ...); +void onyx_submit_warning(OnyxError error); void onyx_report_warning(OnyxFilePos pos, char* format, ...); void onyx_errors_print(); b32 onyx_has_errors(); diff --git a/src/astnodes.c b/src/astnodes.c index b8ae2c6c..109ddf3b 100644 --- a/src/astnodes.c +++ b/src/astnodes.c @@ -969,6 +969,8 @@ void arguments_initialize(Arguments* args) { args->values[i] = NULL; args->named_values[i] = NULL; } + + args->used_argument_count = -1; } void arguments_ensure_length(Arguments* args, u32 count) { @@ -983,20 +985,24 @@ void arguments_ensure_length(Arguments* args, u32 count) { } void arguments_copy(Arguments* dest, Arguments* src) { + dest->used_argument_count = -1; dest->named_values = src->named_values; - arguments_ensure_length(dest, bh_arr_length(src->values)); + bh_arr_grow(dest->values, (u32) bh_arr_length(src->values)); + bh_arr_set_length(dest->values, (u32) bh_arr_length(src->values)); bh_arr_each(AstTyped*, arg, dest->values) *arg = NULL; fori (i, 0, bh_arr_length(src->values)) dest->values[i] = src->values[i]; } // In clone, the named_values are not copied. This is used in find_matching_overload_by_arguments since it doesn't need them to be copied. void arguments_clone(Arguments* dest, Arguments* src) { + dest->used_argument_count = -1; dest->named_values = src->named_values; dest->values = bh_arr_copy(global_heap_allocator, src->values); } void arguments_deep_clone(bh_allocator a, Arguments* dest, Arguments* src) { + dest->used_argument_count = -1; dest->values = NULL; dest->named_values = NULL; diff --git a/src/checker.c b/src/checker.c index becae7ad..3340b2e6 100644 --- a/src/checker.c +++ b/src/checker.c @@ -419,22 +419,6 @@ CheckStatus check_argument(AstArgument** parg) { return Check_Success; } -static i32 non_baked_argument_count(Arguments* args) { - i32 count = 0; - - bh_arr_each(AstTyped *, actual, args->values) { - assert((*actual)->kind == Ast_Kind_Argument); - if (!((AstArgument *) (*actual))->is_baked) count++; - } - - bh_arr_each(AstNamedValue *, named_value, args->named_values) { - assert((*named_value)->value->kind == Ast_Kind_Argument); - if (!((AstArgument *) (*named_value)->value)->is_baked) count++; - } - - return count; -} - static CheckStatus check_resolve_callee(AstCall* call, AstTyped** effective_callee) { if (call->kind == Ast_Kind_Intrinsic_Call) return Check_Success; @@ -505,12 +489,6 @@ static CheckStatus check_resolve_callee(AstCall* call, AstTyped** effective_call return Check_Success; } -typedef enum ArgState { - AS_Expecting_Exact, - AS_Expecting_Typed_VA, - AS_Expecting_Untyped_VA, -} ArgState; - CheckStatus check_call(AstCall** pcall) { // All the things that need to be done when checking a call node. // 1. Ensure the callee is not a symbol @@ -540,13 +518,7 @@ CheckStatus check_call(AstCall** pcall) { AstFunction* callee=NULL; CHECK(resolve_callee, call, (AstTyped **) &callee); - // CLEANUP maybe make function_get_expected_arguments? - i32 non_vararg_param_count = (i32) callee->type->Function.param_count; - if (non_vararg_param_count > 0 && - callee->type->Function.params[callee->type->Function.param_count - 1] == builtin_vararg_type_type) - non_vararg_param_count--; - - i32 arg_count = bh_max(non_vararg_param_count, non_baked_argument_count(&call->args)); + i32 arg_count = function_get_minimum_argument_count(&callee->type->Function, &call->args); arguments_ensure_length(&call->args, arg_count); char* err_msg = NULL; @@ -622,103 +594,14 @@ CheckStatus check_call(AstCall** pcall) { YIELD(call->token->pos, "Waiting for auto-return type to be solved."); } - Type **formal_params = callee->type->Function.params; - - Type* variadic_type = NULL; - AstParam* variadic_param = NULL; - - // SPEED CLEANUP: Caching the any type here. - Type* any_type = type_build_from_ast(context.ast_alloc, builtin_any_type); - - ArgState arg_state = AS_Expecting_Exact; - u32 arg_pos = 0; - while (1) { - switch (arg_state) { - case AS_Expecting_Exact: { - if (arg_pos >= callee->type->Function.param_count) goto type_checking_done; - - if (formal_params[arg_pos]->kind == Type_Kind_VarArgs) { - variadic_type = formal_params[arg_pos]->VarArgs.elem; - variadic_param = &callee->params[arg_pos]; - arg_state = AS_Expecting_Typed_VA; - continue; - } - - if ((i16) arg_pos == callee->type->Function.vararg_arg_pos) { - arg_state = AS_Expecting_Untyped_VA; - continue; - } - - if (arg_pos >= (u32) bh_arr_length(arg_arr)) goto type_checking_done; - 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), - type_get_name(formal_params[arg_pos]), - arg_pos + 1, - bh_num_suffix(arg_pos + 1), - node_get_type_name(arg_arr[arg_pos]->value)); - } - - arg_arr[arg_pos]->va_kind = VA_Kind_Not_VA; - break; - } - - 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) { - resolve_expression_type(arg_arr[arg_pos]->value); - arg_arr[arg_pos]->va_kind = VA_Kind_Any; - break; - } - - call->va_kind = VA_Kind_Typed; - - 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), - type_get_name(variadic_type), - variadic_param->local->token->text, - variadic_param->local->token->length, - node_get_type_name(arg_arr[arg_pos]->value)); - return Check_Error; - } - - arg_arr[arg_pos]->va_kind = VA_Kind_Typed; - break; - } - - case AS_Expecting_Untyped_VA: { - call->va_kind = VA_Kind_Untyped; - - if (arg_pos >= (u32) bh_arr_length(arg_arr)) goto type_checking_done; - - resolve_expression_type(arg_arr[arg_pos]->value); - if (arg_arr[arg_pos]->value->type == NULL) { - ERROR(arg_arr[arg_pos]->token->pos, "Unable to resolve type for argument."); - } - - arg_arr[arg_pos]->va_kind = VA_Kind_Untyped; - break; - } - } - - arg_pos++; + OnyxError error; + if (!check_arguments_against_type(&call->args, &callee->type->Function, &call->va_kind, + call->token, get_function_name(callee), &error)) { + onyx_submit_error(error); + return Check_Error; } -type_checking_done: - - call->flags |= Ast_Flag_Has_Been_Checked; - - if (arg_pos < callee->type->Function.needed_param_count) - ERROR(call->token->pos, "Too few arguments to function call."); - - if (arg_pos < (u32) arg_count) - ERROR(call->token->pos, "Too many arguments to function call."); - + call->flags |= Ast_Flag_Has_Been_Checked; callee->flags |= Ast_Flag_Function_Used; if (call->kind == Ast_Kind_Call && call->callee->kind == Ast_Kind_Macro) { @@ -741,8 +624,13 @@ static AstCall* binaryop_try_operator_overload(AstBinaryOp* binop) { Arguments args = ((Arguments) { NULL, NULL }); bh_arr_new(global_heap_allocator, args.values, 2); - bh_arr_push(args.values, binop->left); - bh_arr_push(args.values, binop->right); + bh_arr_push(args.values, (AstTyped *) make_argument(context.ast_alloc, binop->left)); + bh_arr_push(args.values, (AstTyped *) make_argument(context.ast_alloc, binop->right)); + + u32 current_checking_level_store = current_checking_level; + check_argument((AstArgument **) &args.values[0]); + check_argument((AstArgument **) &args.values[1]); + current_checking_level = current_checking_level_store; if (binop_is_assignment(binop->operation)) { args.values[0] = (AstTyped *) make_address_of(context.ast_alloc, binop->left); @@ -755,6 +643,11 @@ static AstCall* binaryop_try_operator_overload(AstBinaryOp* binop) { if (cs == Check_Error) { return NULL; } + + args.values[0] = (AstTyped *) make_argument(context.ast_alloc, args.values[0]); + current_checking_level_store = current_checking_level; + check_argument((AstArgument **) &args.values[0]); + current_checking_level = current_checking_level_store; } b32 should_yield = 0; @@ -774,9 +667,6 @@ static AstCall* binaryop_try_operator_overload(AstBinaryOp* binop) { implicit_call->callee = overload; implicit_call->va_kind = VA_Kind_Not_VA; - bh_arr_each(AstTyped *, arg, args.values) - *arg = (AstTyped *) make_argument(context.ast_alloc, *arg); - implicit_call->args = args; return implicit_call; } diff --git a/src/errors.c b/src/errors.c index 0a074521..0b9f16d3 100644 --- a/src/errors.c +++ b/src/errors.c @@ -79,6 +79,10 @@ void onyx_clear_errors() { bh_arr_set_length(errors.errors, 0); } +void onyx_submit_error(OnyxError error) { + bh_arr_push(errors.errors, error); +} + void onyx_report_error(OnyxFilePos pos, char * format, ...) { va_list vargs; @@ -94,6 +98,19 @@ void onyx_report_error(OnyxFilePos pos, char * format, ...) { bh_arr_push(errors.errors, err); } +void onyx_submit_warning(OnyxError error) { + bh_file_contents file_contents = { 0 }; + bh_arr_each(bh_file_contents, fc, *errors.file_contents) { + if (!strcmp(fc->filename, error.pos.filename)) { + file_contents = *fc; + break; + } + } + + print_detailed_message(&error, &file_contents); +} + +// This definitely doesn't do what I thought it did? void onyx_report_warning(OnyxFilePos pos, char* format, ...) { va_list vargs; va_start(vargs, format); diff --git a/src/utils.c b/src/utils.c index 017ed8c5..7c63d9c9 100644 --- a/src/utils.c +++ b/src/utils.c @@ -6,6 +6,7 @@ #include "errors.h" #include "parser.h" #include "astnodes.h" +#include "errors.h" bh_scratch global_scratch; bh_allocator global_scratch_allocator; @@ -366,36 +367,14 @@ 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)); + // NOTE: If the arguments cannot be placed successfully in the parameters list if (!fill_in_arguments(&args, (AstNode *) overload, NULL)) continue; - - TypeFunction* ol_type = &overload->type->Function; - if (bh_arr_length(args.values) < (i32) ol_type->needed_param_count) continue; - - b32 all_arguments_work = 1; - fori (i, 0, bh_arr_length(args.values)) { - if (i >= ol_type->param_count) { - all_arguments_work = 0; - break; - } - - Type* type_to_match = ol_type->params[i]; - AstTyped** value = &args.values[i]; - - if (type_to_match->kind == Type_Kind_VarArgs) type_to_match = type_to_match->VarArgs.elem; - if ((*value)->kind == Ast_Kind_Argument) { - // :ArgumentResolvingIsComplicated - if (((AstArgument *) (*value))->is_baked) continue; - value = &((AstArgument *) *value)->value; - } - - if (!unify_node_and_type_(value, type_to_match, 0)) { - all_arguments_work = 0; - break; - } - } - - if (all_arguments_work) { + + VarArgKind va_kind; + if (check_arguments_against_type(&args, &overload->type->Function, &va_kind, NULL, NULL, NULL)) { matched_overload = node; break; } @@ -692,6 +671,33 @@ static i32 maximum_argument_count(AstNode* provider) { return 0x7fffffff; } +static i32 non_baked_argument_count(Arguments* args) { + if (args->used_argument_count >= 0) return args->used_argument_count; + + i32 count = 0; + + bh_arr_each(AstTyped *, actual, args->values) { + if ((*actual)->kind != Ast_Kind_Argument) count++; + else if (!((AstArgument *) (*actual))->is_baked) count++; + } + + bh_arr_each(AstNamedValue *, named_value, args->named_values) { + if ((*named_value)->value->kind != Ast_Kind_Argument) count++; + else if (!((AstArgument *) (*named_value)->value)->is_baked) count++; + } + + args->used_argument_count = count; + return count; +} + +i32 function_get_minimum_argument_count(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--; + + return bh_max(non_vararg_param_count, non_baked_argument_count(args)); +} + // NOTE: The values array can be partially filled out, and is the resulting array. // Returns if all the values were filled in. b32 fill_in_arguments(Arguments* args, AstNode* provider, char** err_msg) { @@ -735,6 +741,7 @@ b32 fill_in_arguments(Arguments* args, AstNode* provider, char** err_msg) { // assert(idx < bh_arr_length(args->values)); if (idx >= bh_arr_length(args->values)) { + if (err_msg) *err_msg = bh_aprintf(global_scratch_allocator, "Error placing value with name '%s' at index '%d'.", named_value->token->text, idx); token_toggle_end(named_value->token); return 0; } @@ -754,20 +761,159 @@ b32 fill_in_arguments(Arguments* args, AstNode* provider, char** err_msg) { fori (idx, 0, bh_arr_length(args->values)) { if (args->values[idx] == NULL) args->values[idx] = (AstTyped *) lookup_default_value_by_idx(provider, idx); if (args->values[idx] == NULL) { - *err_msg = bh_aprintf(global_scratch_allocator, "No value given for %d%s argument.", idx + 1, bh_num_suffix(idx + 1)); + if (err_msg) *err_msg = bh_aprintf(global_scratch_allocator, "No value given for %d%s argument.", idx + 1, bh_num_suffix(idx + 1)); success = 0; } } i32 maximum_arguments = maximum_argument_count(provider); if (bh_arr_length(args->values) > maximum_arguments) { - *err_msg = bh_aprintf(global_scratch_allocator, "Too many values provided. Expected at most %d.", maximum_arguments); + if (err_msg) *err_msg = bh_aprintf(global_scratch_allocator, "Too many values provided. Expected at most %d.", maximum_arguments); success = 0; } return success; } + +// +// Argument checking +// + +typedef enum ArgState { + AS_Expecting_Exact, + AS_Expecting_Typed_VA, + AS_Expecting_Untyped_VA, +} ArgState; + +b32 check_arguments_against_type(Arguments* args, TypeFunction* func_type, VarArgKind* va_kind, + OnyxToken* location, char* func_name, OnyxError* error) { + b32 permanent = location != NULL; + 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); + + Type **formal_params = func_type->params; + Type* variadic_type = NULL; + i64 any_type_id = type_build_from_ast(context.ast_alloc, builtin_any_type)->id; + + ArgState arg_state = AS_Expecting_Exact; + u32 arg_pos = 0; + while (1) { + switch (arg_state) { + case AS_Expecting_Exact: { + if (arg_pos >= func_type->param_count) goto type_checking_done; + + if (formal_params[arg_pos]->kind == Type_Kind_VarArgs) { + variadic_type = formal_params[arg_pos]->VarArgs.elem; + arg_state = AS_Expecting_Typed_VA; + continue; + } + + if ((i16) arg_pos == func_type->vararg_arg_pos) { + arg_state = AS_Expecting_Untyped_VA; + continue; + } + + if (arg_pos >= (u32) bh_arr_length(arg_arr)) goto type_checking_done; + + assert(arg_arr[arg_pos]->kind == Ast_Kind_Argument); + if (!unify_node_and_type_(&arg_arr[arg_pos]->value, formal_params[arg_pos], permanent)) { + if (error != NULL) { + error->pos = arg_arr[arg_pos]->token->pos, + error->text = bh_aprintf(global_heap_allocator, + "The procedure '%s' expects a value of type '%s' for %d%s parameter, got '%s'.", + func_name, + type_get_name(formal_params[arg_pos]), + arg_pos + 1, + bh_num_suffix(arg_pos + 1), + node_get_type_name(arg_arr[arg_pos]->value)); + } + return 0; + } + + arg_arr[arg_pos]->va_kind = VA_Kind_Not_VA; + break; + } + + case AS_Expecting_Typed_VA: { + if (variadic_type->id == any_type_id) *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) { + resolve_expression_type(arg_arr[arg_pos]->value); + arg_arr[arg_pos]->va_kind = VA_Kind_Any; + break; + } + + *va_kind = VA_Kind_Typed; + + assert(arg_arr[arg_pos]->kind == Ast_Kind_Argument); + if (!unify_node_and_type_(&arg_arr[arg_pos]->value, variadic_type, permanent)) { + if (error != NULL) { + error->pos = arg_arr[arg_pos]->token->pos, + error->text = bh_aprintf(global_heap_allocator, + "The procedure '%s' expects a value of type '%s' for the variadic parameter, got '%s'.", + func_name, + type_get_name(variadic_type), + node_get_type_name(arg_arr[arg_pos]->value)); + } + return 0; + } + + arg_arr[arg_pos]->va_kind = VA_Kind_Typed; + break; + } + + case AS_Expecting_Untyped_VA: { + *va_kind = VA_Kind_Untyped; + + if (arg_pos >= (u32) bh_arr_length(arg_arr)) goto type_checking_done; + + assert(arg_arr[arg_pos]->kind == Ast_Kind_Argument); + resolve_expression_type(arg_arr[arg_pos]->value); + if (arg_arr[arg_pos]->value->type == NULL) { + if (error != NULL) { + error->pos = arg_arr[arg_pos]->token->pos; + error->text = "Unable to resolve type for argument."; + } + return 0; + } + + arg_arr[arg_pos]->va_kind = VA_Kind_Untyped; + break; + } + } + + arg_pos++; + } + +type_checking_done: + if (arg_pos < func_type->needed_param_count) { + if (error != NULL) { + error->pos = location->pos; + error->text = "Too few arguments to function call."; + } + return 0; + } + + if (arg_pos < (u32) arg_count) { + if (error != NULL) { + error->pos = location->pos; + error->text = bh_aprintf(global_heap_allocator, "Too many arguments to function call. %d %d", arg_pos, arg_count); + } + return 0; + } + + return 1; +} + + + + + // // String parsing helpers // diff --git a/src/wasm.c b/src/wasm.c index 144deaba..43125c52 100644 --- a/src/wasm.c +++ b/src/wasm.c @@ -2845,20 +2845,20 @@ EMIT_FUNC(return, AstReturn* ret) { // Clear the normal deferred statements emit_deferred_stmts(mod, &code); - // Clear the rest of the deferred statements - if (bh_arr_length(mod->deferred_stmts) > 0) { - i32 i = bh_arr_length(mod->deferred_stmts) - 1; - while (i >= 0) { - emit_deferred_stmt(mod, &code, mod->deferred_stmts[i]); - i--; - } - } - i64 jump_label = get_structured_jump_label(mod, Jump_Type_Return, 1); if (jump_label >= 0) { WIL(WI_JUMP, jump_label); } else { + // Clear the rest of the deferred statements + if (bh_arr_length(mod->deferred_stmts) > 0) { + i32 i = bh_arr_length(mod->deferred_stmts) - 1; + while (i >= 0) { + emit_deferred_stmt(mod, &code, mod->deferred_stmts[i]); + i--; + } + } + // Make a patch for the two instructions needed to restore the stack pointer SUBMIT_PATCH(mod->stack_leave_patches, 0); WI(WI_NOP); diff --git a/tests/named_arguments_test b/tests/named_arguments_test index 2942784d..e7cf58fb 100644 --- a/tests/named_arguments_test +++ b/tests/named_arguments_test @@ -26,3 +26,6 @@ MATCHED Z: 10 ========================= false true false true true false true true false false true true false true +MATCHED X +MATCHED Y +MATCHED Z [ 10, 40, 90 ] diff --git a/tests/named_arguments_test.onyx b/tests/named_arguments_test.onyx index 7b1bcc26..a2a7d58d 100644 --- a/tests/named_arguments_test.onyx +++ b/tests/named_arguments_test.onyx @@ -73,13 +73,13 @@ main :: (args: [] cstr) { // This currently does not work and would require a lot of rewriting of compiler internals to make work. - // named_baked_overloaded_parameters :: proc { - // ($T: type_expr, x: T) do { println("MATCHED X"); }, - // ($T: type_expr, y: [$N] T) do { println("MATCHED X"); }, - // ($T: type_expr, z: T) do { println("MATCHED X"); }, - // } - - // named_baked_overloaded_parameters(i32, 10); - // named_baked_overloaded_parameters(i32, u32.[ 10, 20, 30 ]); - // named_baked_overloaded_parameters(i32, z = u32.[ 10, 20, 30 ]); + named_baked_overloaded_parameters :: #match { + ($T: type_expr, x: T) { println("MATCHED X"); }, + ($T: type_expr, y: [$N] T) { println("MATCHED Y"); }, + ($T: type_expr, z: [$N] T) { printf("MATCHED Z {}\n", z); }, + } + + named_baked_overloaded_parameters(i32, 10); + named_baked_overloaded_parameters(i32, u32.[ 10, 20, 30 ]); + named_baked_overloaded_parameters(i32, z = u32.[ 10, 40, 90 ]); } -- 2.25.1