Browse Source

Use `Raw_Map` as the debug information for a `map`

gingerBill 1 year ago
parent
commit
5cd57a3a7f
2 changed files with 5 additions and 1 deletions
  1. 2 0
      src/check_type.cpp
  2. 3 1
      src/llvm_backend_debug.cpp

+ 2 - 0
src/check_type.cpp

@@ -2307,6 +2307,7 @@ gb_internal void init_map_internal_types(Type *type) {
 	metadata_type->Struct.fields[3] = alloc_entity_field(metadata_scope, make_token_ident("key_cell"),   key_cell,   false, 3, EntityState_Resolved);
 	metadata_type->Struct.fields[3] = alloc_entity_field(metadata_scope, make_token_ident("key_cell"),   key_cell,   false, 3, EntityState_Resolved);
 	metadata_type->Struct.fields[4] = alloc_entity_field(metadata_scope, make_token_ident("value_cell"), value_cell, false, 4, EntityState_Resolved);
 	metadata_type->Struct.fields[4] = alloc_entity_field(metadata_scope, make_token_ident("value_cell"), value_cell, false, 4, EntityState_Resolved);
 	metadata_type->Struct.scope = metadata_scope;
 	metadata_type->Struct.scope = metadata_scope;
+	metadata_type->Struct.node = nullptr;
 
 
 	gb_unused(type_size_of(metadata_type));
 	gb_unused(type_size_of(metadata_type));
 
 
@@ -2323,6 +2324,7 @@ gb_internal void init_map_internal_types(Type *type) {
 	debug_type->Struct.fields[2] = alloc_entity_field(scope, make_token_ident("allocator"),  t_allocator,   false, 2, EntityState_Resolved);
 	debug_type->Struct.fields[2] = alloc_entity_field(scope, make_token_ident("allocator"),  t_allocator,   false, 2, EntityState_Resolved);
 	debug_type->Struct.fields[3] = alloc_entity_field(scope, make_token_ident("__metadata"), metadata_type, false, 3, EntityState_Resolved);
 	debug_type->Struct.fields[3] = alloc_entity_field(scope, make_token_ident("__metadata"), metadata_type, false, 3, EntityState_Resolved);
 	debug_type->Struct.scope = scope;
 	debug_type->Struct.scope = scope;
+	debug_type->Struct.node = nullptr;
 
 
 	gb_unused(type_size_of(debug_type));
 	gb_unused(type_size_of(debug_type));
 
 

+ 3 - 1
src/llvm_backend_debug.cpp

@@ -710,7 +710,9 @@ gb_internal void lb_debug_complete_types(lbModule *m) {
 
 
 			case Type_Map:
 			case Type_Map:
 				GB_ASSERT(t_raw_map != nullptr);
 				GB_ASSERT(t_raw_map != nullptr);
-				bt = base_type(t->Map.debug_metadata_type);
+				// bt = base_type(t->Map.debug_metadata_type);
+				bt = base_type(t_raw_map);
+				GB_ASSERT(bt->kind == Type_Struct);
 				/*fallthrough*/
 				/*fallthrough*/
 			case Type_Struct:
 			case Type_Struct:
 				if (file == nullptr) {
 				if (file == nullptr) {