diff options
| author | Jeroen van Rijn <Kelimion@users.noreply.github.com> | 2025-05-31 14:05:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-31 14:05:17 +0200 |
| commit | aedbb0bdb30ce5e5a5499241f9e8dd3be90c7ff9 (patch) | |
| tree | 09ad2a0cb0b89e2831ff7ff257b03cad0a099609 | |
| parent | d52aa3f2c22362f417e440e988e186f683449261 (diff) | |
| parent | 57019f199cc18d75970023c88a428930527b70d4 (diff) | |
Merge pull request #5247 from Feoramund/fix-2083
Add suggestions for `quaternionN` or `complexN` conversions
| -rw-r--r-- | src/check_expr.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 60a4d3a98..20918c8f9 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -7960,7 +7960,27 @@ gb_internal ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *c default: { gbString str = type_to_string(t); - error(call, "Too many arguments in conversion to '%s'", str); + if (t->kind == Type_Basic) { + ERROR_BLOCK(); + switch (t->Basic.kind) { + case Basic_complex32: + case Basic_complex64: + case Basic_complex128: + error(call, "Too many arguments in conversion to '%s'", str); + error_line("\tSuggestion: %s(1+2i) or construct with 'complex'\n", str); + break; + case Basic_quaternion64: + case Basic_quaternion128: + case Basic_quaternion256: + error(call, "Too many arguments in conversion to '%s'", str); + error_line("\tSuggestion: %s(1+2i+3j+4k) or construct with 'quaternion'\n", str); + break; + default: + error(call, "Too many arguments in conversion to '%s'", str); + } + } else { + error(call, "Too many arguments in conversion to '%s'", str); + } gb_string_free(str); } break; case 1: { |