aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-01-22 10:38:23 +0000
committerGitHub <noreply@github.com>2025-01-22 10:38:23 +0000
commit36e86ba552afeaeb0c54fa43bcffa37562521ff3 (patch)
tree8982172ff665e78b7935b808f474db97abbb4af0
parent2619167fd0d38c2703e5d03c0273ab6e4c39c629 (diff)
parente85667c95cdd9c61dccd1e1b747aa07889edcd6a (diff)
Merge pull request #4739 from jasonKercher/fix-4738
fix compiler crash on assigning a variable to an unresolved bit_set
-rw-r--r--src/check_decl.cpp2
-rw-r--r--src/types.cpp4
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);