aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2024-08-24 11:50:02 +0100
committerGitHub <noreply@github.com>2024-08-24 11:50:02 +0100
commit65543b993ff3795aae74c0d362043aa6a3198deb (patch)
tree2b91c5e366f4689f6fb3d6dd34c7f2f218942aeb /src/check_expr.cpp
parent00fb60d3d96877935012a4cc9cbd39525dc52d17 (diff)
parent5ef8a092f663d5a092c6eff026ce3122020da349 (diff)
Merge pull request #4130 from fusion32/fix-ambiguous-generic-type-names
fix ambiguous generic type names
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index a2500048e..a878911d9 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -7629,7 +7629,7 @@ gb_internal CallArgumentError check_polymorphic_record_type(CheckerContext *c, O
gbString s = gb_string_make_reserve(heap_allocator(), e->token.string.len+3);
s = gb_string_append_fmt(s, "%.*s(", LIT(e->token.string));
- TypeTuple *tuple = get_record_polymorphic_params(e->type);
+ TypeTuple *tuple = get_record_polymorphic_params(bt);
if (tuple != nullptr) for_array(i, tuple->variables) {
Entity *v = tuple->variables[i];
String name = v->token.string;
@@ -7644,8 +7644,10 @@ gb_internal CallArgumentError check_polymorphic_record_type(CheckerContext *c, O
s = write_type_to_string(s, v->type, false);
}
} else if (v->kind == Entity_Constant) {
- s = gb_string_append_fmt(s, "=");
- s = write_exact_value_to_string(s, v->Constant.value);
+ if (v->Constant.value.kind != ExactValue_Invalid) {
+ s = gb_string_append_fmt(s, "=");
+ s = write_exact_value_to_string(s, v->Constant.value);
+ }
}
}
s = gb_string_append_fmt(s, ")");