| 2726 | } |
| 2727 | |
| 2728 | String BfIRBuilder::GetDebugTypeName(BfTypeInstance* typeInstance, bool includeOuterTypeName) |
| 2729 | { |
| 2730 | BfTypeNameFlags typeNameFlags = BfTypeNameFlag_AddGlobalContainerName; |
| 2731 | if (!typeInstance->IsUnspecializedTypeVariation()) |
| 2732 | typeNameFlags = (BfTypeNameFlags)(typeNameFlags | BfTypeNameFlag_ResolveGenericParamNames); |
| 2733 | |
| 2734 | String typeName; |
| 2735 | if (typeInstance->IsBoxed()) |
| 2736 | { |
| 2737 | BfBoxedType* boxedType = (BfBoxedType*)typeInstance; |
| 2738 | typeName = mModule->TypeToString(boxedType->mElementType, (BfTypeNameFlags)(typeNameFlags)); |
| 2739 | if (boxedType->IsBoxedStructPtr()) |
| 2740 | typeName += "*"; |
| 2741 | typeName = "Box<" + typeName + ">"; |
| 2742 | } |
| 2743 | else if (includeOuterTypeName) |
| 2744 | { |
| 2745 | typeName = mModule->TypeToString(typeInstance, (BfTypeNameFlags)(typeNameFlags | BfTypeNameFlag_OmitNamespace)); |
| 2746 | } |
| 2747 | else |
| 2748 | { |
| 2749 | typeName = mModule->TypeToString(typeInstance, (BfTypeNameFlags)(typeNameFlags | BfTypeNameFlag_OmitNamespace | BfTypeNameFlag_OmitOuterType)); |
| 2750 | } |
| 2751 | |
| 2752 | for (int i = 0; i < (int)typeName.length(); i++) |
| 2753 | { |
| 2754 | if (typeName[i] == '.') |
| 2755 | { |
| 2756 | typeName[i] = ':'; |
| 2757 | typeName.Insert(i, ":"); |
| 2758 | } |
| 2759 | } |
| 2760 | |
| 2761 | //DbgAddPrefix(typeName); |
| 2762 | return typeName; |
| 2763 | } |
| 2764 | |
| 2765 | #ifdef BFIR_RENTRY_CHECK |
| 2766 | struct ReEntryCheck |
nothing calls this directly
no test coverage detected