From 0482facdda4fd9257202fb89d9563d5a44e1499a Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 18 Feb 2025 15:26:59 +0000 Subject: [PATCH] Fix for weird builtin types --- src/name_canonicalization.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/name_canonicalization.cpp b/src/name_canonicalization.cpp index 0e81ab12cd1..6f092181c8d 100644 --- a/src/name_canonicalization.cpp +++ b/src/name_canonicalization.cpp @@ -448,11 +448,15 @@ gb_internal void write_canonical_entity_name(TypeWriter *w, Entity *e) { return; } - if ((e->scope->flags & (ScopeFlag_File | ScopeFlag_Pkg)) == 0 || - e->flags & EntityFlag_NotExported) { - + if (e->scope->flags & (ScopeFlag_Builtin)) { + // ignore + } else if ((e->scope->flags & (ScopeFlag_File | ScopeFlag_Pkg)) == 0) { Scope *s = e->scope; + while ((s->flags & (ScopeFlag_Proc|ScopeFlag_File)) == 0 && s->decl_info == nullptr) { + if (s->parent == nullptr) { + break; + } s = s->parent; } @@ -470,6 +474,8 @@ gb_internal void write_canonical_entity_name(TypeWriter *w, Entity *e) { } type_writer_appendc(w, gb_bprintf(CANONICAL_NAME_SEPARATOR "[%.*s]" CANONICAL_NAME_SEPARATOR, LIT(file_name))); goto write_base_name; + } else if (s->flags & (ScopeFlag_Builtin)) { + goto write_base_name; } gb_printf_err("%s WEIRD ENTITY TYPE %s %u %p\n", token_pos_to_string(e->token.pos), type_to_string(e->type), s->flags, s->decl_info); @@ -487,7 +493,7 @@ gb_internal void write_canonical_entity_name(TypeWriter *w, Entity *e) { }; print_scope_flags(s); - GB_PANIC("weird entity"); + GB_PANIC("weird entity %.*s", LIT(e->token.string)); } if (e->pkg != nullptr) { type_writer_append(w, e->pkg->name.text, e->pkg->name.len);