diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2025-01-22 10:38:23 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-22 10:38:23 +0000 |
| commit | 36e86ba552afeaeb0c54fa43bcffa37562521ff3 (patch) | |
| tree | 8982172ff665e78b7935b808f474db97abbb4af0 /src | |
| parent | 2619167fd0d38c2703e5d03c0273ab6e4c39c629 (diff) | |
| parent | e85667c95cdd9c61dccd1e1b747aa07889edcd6a (diff) | |
Merge pull request #4739 from jasonKercher/fix-4738
fix compiler crash on assigning a variable to an unresolved bit_set
Diffstat (limited to 'src')
| -rw-r--r-- | src/check_decl.cpp | 2 | ||||
| -rw-r--r-- | src/types.cpp | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/check_decl.cpp b/src/check_decl.cpp index 1d792dad8..bf6e39bd2 100644 --- a/src/check_decl.cpp +++ b/src/check_decl.cpp @@ -60,7 +60,7 @@ gb_internal Type *check_init_variable(CheckerContext *ctx, Entity *e, Operand *o error(operand->expr, "Cannot assign a type '%s' to variable '%.*s'", t, LIT(e->token.string)); } if (e->type == nullptr) { - error_line("\tThe type of the variable '%.*s' cannot be inferred as a type does not have a default type\n", LIT(e->token.string)); + error_line("\tThe type of the variable '%.*s' cannot be inferred as a type and does not have a default type\n", LIT(e->token.string)); } e->type = operand->type; return nullptr; diff --git a/src/types.cpp b/src/types.cpp index 233f903a3..0b6e6d334 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -4773,7 +4773,9 @@ gb_internal gbString write_type_to_string(gbString str, Type *type, bool shortha case Type_BitSet: str = gb_string_appendc(str, "bit_set["); - if (is_type_enum(type->BitSet.elem)) { + if (type->BitSet.elem == nullptr) { + str = gb_string_appendc(str, "<unresolved>"); + } else if (is_type_enum(type->BitSet.elem)) { str = write_type_to_string(str, type->BitSet.elem); } else { str = gb_string_append_fmt(str, "%lld", type->BitSet.lower); |