From f1e13bdddbfda3297e381c9350dc7e6188951eac Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 23 Mar 2021 20:45:39 +0000 Subject: [PATCH] Prefix named types with package name in debug types --- src/llvm_backend.cpp | 3 +++ src/string.cpp | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 08b32ec03..c703d7b16 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -2010,6 +2010,9 @@ void lb_debug_complete_types(lbModule *m) { String name = str_lit(""); if (t->kind == Type_Named) { name = t->Named.name; + if (t->Named.type_name && t->Named.type_name->pkg && t->Named.type_name->pkg->name.len != 0) { + name = concatenate3_strings(temporary_allocator(), t->Named.type_name->pkg->name, str_lit("."), t->Named.name); + } LLVMMetadataRef file = nullptr; unsigned line = 0; diff --git a/src/string.cpp b/src/string.cpp index 408f53d72..4226f0751 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -343,6 +343,15 @@ String concatenate_strings(gbAllocator a, String const &x, String const &y) { data[len] = 0; return make_string(data, len); } +String concatenate3_strings(gbAllocator a, String const &x, String const &y, String const &z) { + isize len = x.len+y.len+z.len; + u8 *data = gb_alloc_array(a, u8, len+1); + gb_memmove(data, x.text, x.len); + gb_memmove(data+x.len, y.text, y.len); + gb_memmove(data+x.len+y.len, z.text, z.len); + data[len] = 0; + return make_string(data, len); +} String string_join_and_quote(gbAllocator a, Array strings) { if (!strings.count) {