aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 87525028d..e773be111 100644
--- a/src/ir.cpp
+++ b/src/ir.cpp
@@ -3833,14 +3833,16 @@ String ir_mangle_name(irGen *s, Entity *e) {
return make_string(new_name, new_name_len-1);
#else
- GB_ASSERT(e->pkg != nullptr);
- String pkg = e->pkg->name;
- GB_ASSERT(!rune_is_digit(pkg[0]));
-
String name = e->token.string;
+ AstPackage *pkg = e->pkg;
+ GB_ASSERT_MSG(pkg != nullptr, "Missing package for '%.*s'", LIT(name));
+ String pkgn = pkg->name;
+ GB_ASSERT(!rune_is_digit(pkgn[0]));
+
+
- isize max_len = pkg.len + 1 + name.len + 1;
+ isize max_len = pkgn.len + 1 + name.len + 1;
bool require_suffix_id = is_type_polymorphic(e->type);
if (require_suffix_id) {
max_len += 21;
@@ -3849,7 +3851,7 @@ String ir_mangle_name(irGen *s, Entity *e) {
u8 *new_name = gb_alloc_array(a, u8, max_len);
isize new_name_len = gb_snprintf(
cast(char *)new_name, max_len,
- "%.*s.%.*s", LIT(pkg), LIT(name)
+ "%.*s.%.*s", LIT(pkgn), LIT(name)
);
if (require_suffix_id) {
char *str = cast(char *)new_name + new_name_len-1;