diff options
| author | gingerBill <bill@gingerbill.org> | 2022-06-28 11:27:50 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-06-28 11:27:50 +0100 |
| commit | ea42613fec8aa5875e1557cbc913651ad979463c (patch) | |
| tree | 4593a1abf1b4f71a4f67ac971ecd635d441e16b8 /src | |
| parent | 776b48c10db280f555853edbd08f0fc634b97db9 (diff) | |
Improve error message with suggestion for #1866
Diffstat (limited to 'src')
| -rw-r--r-- | src/check_stmt.cpp | 21 | ||||
| -rw-r--r-- | src/types.cpp | 11 |
2 files changed, 26 insertions, 6 deletions
diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index f061b4961..a6f6f1a7d 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -2142,7 +2142,26 @@ void check_stmt_internal(CheckerContext *ctx, Ast *node, u32 flags) { } if (new_name_count == 0) { - error(node, "No new declarations on the lhs"); + begin_error_block(); + error(node, "No new declarations on the left hand side"); + bool all_underscore = true; + for_array(i, vd->names) { + Ast *name = vd->names[i]; + if (name->kind == Ast_Ident) { + if (!is_blank_ident(name)) { + all_underscore = false; + break; + } + } else { + all_underscore = false; + break; + } + } + if (all_underscore) { + error_line("\tSuggestion: Try changing the declaration (:=) to an assignment (=)\n"); + } + + end_error_block(); } Type *init_type = nullptr; diff --git a/src/types.cpp b/src/types.cpp index ad83e0568..5f112ce09 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -724,10 +724,11 @@ gb_global RecursiveMutex g_type_mutex; struct TypePath; -i64 type_size_of (Type *t); -i64 type_align_of (Type *t); -i64 type_offset_of (Type *t, i32 index); -gbString type_to_string (Type *type, bool shorthand=false); +i64 type_size_of (Type *t); +i64 type_align_of (Type *t); +i64 type_offset_of (Type *t, i32 index); +gbString type_to_string (Type *type, bool shorthand=true); +gbString type_to_string (Type *type, gbAllocator allocator, bool shorthand=true); i64 type_size_of_internal(Type *t, TypePath *path); void init_map_internal_types(Type *type); Type * bit_set_to_int(Type *t); @@ -4287,7 +4288,7 @@ gbString write_type_to_string(gbString str, Type *type, bool shorthand=false) { } -gbString type_to_string(Type *type, gbAllocator allocator, bool shorthand=false) { +gbString type_to_string(Type *type, gbAllocator allocator, bool shorthand) { return write_type_to_string(gb_string_make(allocator, ""), type, shorthand); } gbString type_to_string(Type *type, bool shorthand) { |