From 1b85af972bde9524d2284b3e0d989ddf0f4e437e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Ducha=C3=AEne?= Date: Thu, 16 Oct 2025 11:56:11 -0400 Subject: [PATCH] On wrong append call, help users pass-by-pointer WHY? First Odin users that try to use append often forget to pass a pointer, and pass-by-value. This is a first attempt at helping with that, but a better version would be a generic way to check when any proc values should be pass-by-pointer instead of pass-by-value, as discussed at https://forum.odin-lang.org/t/least-parsable-most-common-error-message/1241/3 --- src/check_expr.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index e22f1232342..b36d44503ec 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -7283,6 +7283,10 @@ gb_internal CallArgumentData check_call_arguments_proc_group(CheckerContext *c, error_line("\tNo given arguments\n"); } else { print_argument_types(); + const gbString append_proc_name = gb_string_make(temporary_allocator(), "append"); + if(gb_string_are_equal(expr_name, append_proc_name)){ + error_line("Suggestion: Make sure that you passed, as the first argument, a dynamic array by pointer, like so `append(&some_dynamic_array, ...)`.\n"); + } } if (procs.count == 0) {