Browse Source

fix the typeid type kind of a typeid being set to Typeid_Invalid

Laytan Laats 9 months ago
parent
commit
69d375705e
1 changed files with 2 additions and 0 deletions
  1. 2 0
      src/llvm_backend_type.cpp

+ 2 - 0
src/llvm_backend_type.cpp

@@ -43,6 +43,8 @@ gb_internal u64 lb_typeid_kind(lbModule *m, Type *type, u64 id=0) {
 		if (flags & BasicFlag_Pointer)  kind = Typeid_Pointer;
 		if (flags & BasicFlag_Pointer)  kind = Typeid_Pointer;
 		if (flags & BasicFlag_String)   kind = Typeid_String;
 		if (flags & BasicFlag_String)   kind = Typeid_String;
 		if (flags & BasicFlag_Rune)     kind = Typeid_Rune;
 		if (flags & BasicFlag_Rune)     kind = Typeid_Rune;
+
+		if (bt->Basic.kind == Basic_typeid) kind = Typeid_Type_Id;
 	} break;
 	} break;
 	case Type_Pointer:         kind = Typeid_Pointer;          break;
 	case Type_Pointer:         kind = Typeid_Pointer;          break;
 	case Type_MultiPointer:    kind = Typeid_Multi_Pointer;    break;
 	case Type_MultiPointer:    kind = Typeid_Multi_Pointer;    break;