diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2022-04-14 15:09:03 +0100 |
|---|---|---|
| committer | gingerBill <gingerBill@users.noreply.github.com> | 2022-04-14 15:09:03 +0100 |
| commit | 8a9f7fc684b39c803cab184344a8a017308ed63a (patch) | |
| tree | 28aea5b77a7a2b69f20dfb4d208e40b6828eab87 /src | |
| parent | 51db46551edb16eaa1396bbc3d8374dc1500154e (diff) | |
Fix #1713
Diffstat (limited to 'src')
| -rw-r--r-- | src/check_expr.cpp | 5 | ||||
| -rw-r--r-- | src/exact_value.cpp | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp index dcf17af39..336a711d4 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -8161,7 +8161,10 @@ ExprKind check_compound_literal(CheckerContext *c, Operand *o, Ast *node, Type * case Type_Basic: { if (!is_type_any(t)) { if (cl->elems.count != 0) { - error(node, "Illegal compound literal"); + gbString s = type_to_string(t); + error(node, "Illegal compound literal, %s cannot be used as a compound literal with fields", s); + gb_string_free(s); + is_constant = false; } break; } diff --git a/src/exact_value.cpp b/src/exact_value.cpp index f6df48951..cedef48c4 100644 --- a/src/exact_value.cpp +++ b/src/exact_value.cpp @@ -591,6 +591,7 @@ failure: i32 exact_value_order(ExactValue const &v) { switch (v.kind) { case ExactValue_Invalid: + case ExactValue_Compound: return 0; case ExactValue_Bool: case ExactValue_String: @@ -607,8 +608,6 @@ i32 exact_value_order(ExactValue const &v) { return 6; case ExactValue_Procedure: return 7; - // case ExactValue_Compound: - // return 8; default: GB_PANIC("How'd you get here? Invalid Value.kind %d", v.kind); |