diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2024-05-09 20:20:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-09 20:20:18 +0200 |
| commit | 41bd8cf7143902db59c02c56fc5318a7e749d7a5 (patch) | |
| tree | 99264d56649471e88c7509c8605152d6ca09bb12 /src | |
| parent | 1604f37cb82a843642708bc53d5f7b11f6634b6f (diff) | |
| parent | 98827c867dd88b1a72d74f0a6d703f7a25d81d91 (diff) | |
Merge pull request #3563 from laytan/fix-duplicate-suggestions
fix duplicate suggestions and add missing newline
Diffstat (limited to 'src')
| -rw-r--r-- | src/check_expr.cpp | 2 | ||||
| -rw-r--r-- | src/error.cpp | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 98aebfe4e..f0c33d9d8 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -6201,7 +6201,7 @@ gb_internal bool evaluate_where_clauses(CheckerContext *ctx, Ast *call_expr, Sco error(c, "Prefer to separate 'where' clauses with a comma rather than '&&'"); gbString x = expr_to_string(c->BinaryExpr.left); gbString y = expr_to_string(c->BinaryExpr.right); - error_line("\tSuggestion: '%s, %s'", x, y); + error_line("\tSuggestion: '%s, %s'\n", x, y); gb_string_free(y); gb_string_free(x); } diff --git a/src/error.cpp b/src/error.cpp index 1877a672b..688d1b34a 100644 --- a/src/error.cpp +++ b/src/error.cpp @@ -719,9 +719,13 @@ gb_internal void print_all_errors(void) { } } - if (it.str.len-it.pos > 0) { - array_add_elems(&prev_ev->msg, it.str.text+it.pos, it.str.len-it.pos); + // Merge additional text (suggestions for example) into the previous error. + String current = {prev_ev->msg.data, prev_ev->msg.count}; + String addition = {it.str.text+it.pos, it.str.len-it.pos}; + if (addition.len > 0 && !string_contains_string(current, addition)) { + array_add_elems(&prev_ev->msg, addition.text, addition.len); } + array_free(&ev.msg); array_ordered_remove(&global_error_collector.error_values, i); } else { |