From d9f293b2818b30ebe2d29180aa62c3ce432c4582 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 23 May 2022 11:50:05 +0100 Subject: Add better error message for trying to dereference a multi-pointer --- src/check_expr.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/check_expr.cpp') diff --git a/src/check_expr.cpp b/src/check_expr.cpp index bc28583b7..013d22913 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -9310,7 +9310,15 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type } else { gbString str = expr_to_string(o->expr); gbString typ = type_to_string(o->type); + begin_error_block(); + error(o->expr, "Cannot dereference '%s' of type '%s'", str, typ); + if (o->type && is_type_multi_pointer(o->type)) { + error_line("\tDid you mean '%s[0]'?\n", str); + } + + end_error_block(); + gb_string_free(typ); gb_string_free(str); o->mode = Addressing_Invalid; -- cgit v1.2.3