aboutsummaryrefslogtreecommitdiff
path: root/src/check_stmt.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-06-28 11:27:50 +0100
committergingerBill <bill@gingerbill.org>2022-06-28 11:27:50 +0100
commitea42613fec8aa5875e1557cbc913651ad979463c (patch)
tree4593a1abf1b4f71a4f67ac971ecd635d441e16b8 /src/check_stmt.cpp
parent776b48c10db280f555853edbd08f0fc634b97db9 (diff)
Improve error message with suggestion for #1866
Diffstat (limited to 'src/check_stmt.cpp')
-rw-r--r--src/check_stmt.cpp21
1 files changed, 20 insertions, 1 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;