| 2835 | } |
| 2836 | |
| 2837 | void BfContext::GenerateModuleName_TypeInst(BfTypeInstance* typeInst, StringImpl& name) |
| 2838 | { |
| 2839 | auto resolveModule = typeInst->mIsReified ? mScratchModule : mUnreifiedModule; |
| 2840 | auto outerType = resolveModule->GetOuterType(typeInst); |
| 2841 | int startGenericIdx = 0; |
| 2842 | if (outerType != NULL) |
| 2843 | { |
| 2844 | startGenericIdx = (int)outerType->mTypeDef->mGenericParamDefs.size(); |
| 2845 | GenerateModuleName_Type(outerType, name); |
| 2846 | |
| 2847 | /*if ((!name.empty()) && (name[name.length() - 1] != '_')) |
| 2848 | name += '_';*/ |
| 2849 | } |
| 2850 | else |
| 2851 | { |
| 2852 | for (int i = 0; i < typeInst->mTypeDef->mNamespace.mSize; i++) |
| 2853 | { |
| 2854 | auto atom = typeInst->mTypeDef->mNamespace.mParts[i]; |
| 2855 | if ((!name.empty()) && (name[name.length() - 1] != '_')) |
| 2856 | name += '_'; |
| 2857 | name += atom->mString; |
| 2858 | } |
| 2859 | } |
| 2860 | |
| 2861 | if ((!name.empty()) && (name[name.length() - 1] != '_')) |
| 2862 | name += '_'; |
| 2863 | |
| 2864 | if (typeInst->mTypeDef->IsGlobalsContainer()) |
| 2865 | name += "GLOBALS_"; |
| 2866 | else |
| 2867 | name += typeInst->mTypeDef->mName->mString; |
| 2868 | |
| 2869 | if (typeInst->IsClosure()) |
| 2870 | { |
| 2871 | auto closureType = (BfClosureType*)typeInst; |
| 2872 | name += closureType->mNameAdd; |
| 2873 | return; |
| 2874 | } |
| 2875 | |
| 2876 | if (typeInst->mGenericTypeInfo != NULL) |
| 2877 | { |
| 2878 | for (int genericIdx = startGenericIdx; genericIdx < (int)typeInst->mGenericTypeInfo->mTypeGenericArguments.size(); genericIdx++) |
| 2879 | { |
| 2880 | auto type = typeInst->mGenericTypeInfo->mTypeGenericArguments[genericIdx]; |
| 2881 | GenerateModuleName_Type(type, name); |
| 2882 | } |
| 2883 | } |
| 2884 | } |
| 2885 | |
| 2886 | void BfContext::GenerateModuleName_Type(BfType* type, StringImpl& name) |
| 2887 | { |
nothing calls this directly
no test coverage detected