1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Improved emit marker when specialized type has no emission

This commit is contained in:
Brian Fiete 2022-04-27 08:00:21 -07:00
parent 5083f5d64e
commit e852ba49bb

View file

@ -9782,29 +9782,26 @@ BF_EXPORT const char* BF_CALLTYPE BfCompiler_GetCollapseRegions(BfCompiler* bfCo
if (typeHashSet.Contains(typeInst->mTypeDef->GetLatest()))
{
if (typeInst->IsSpecializedType())
if (typeInst->mCeTypeInfo == NULL)
continue;
for (auto& kv : typeInst->mCeTypeInfo->mEmitSourceMap)
{
if (typeInst->mCeTypeInfo == NULL)
continue;
int partialIdx = (int)(kv.mKey >> 32);
int charIdx = (int)(kv.mKey & 0xFFFFFFFF);
for (auto& kv : typeInst->mCeTypeInfo->mEmitSourceMap)
{
int partialIdx = (int)(kv.mKey >> 32);
int charIdx = (int)(kv.mKey & 0xFFFFFFFF);
auto typeDef = typeInst->mTypeDef;
if (partialIdx > 0)
typeDef = typeDef->mPartials[partialIdx];
auto typeDef = typeInst->mTypeDef;
if (partialIdx > 0)
typeDef = typeDef->mPartials[partialIdx];
auto emitParser = typeInst->mTypeDef->GetLastSource()->ToParser();
auto emitParser = typeInst->mTypeDef->GetLastSource()->ToParser();
Dictionary<int, _EmitSource>* map = NULL;
emitLocMap.TryAdd(typeDef->GetLatest(), NULL, &map);
_EmitSource emitSource;
emitSource.mEmitParser = emitParser;
emitSource.mIsPrimary = false;
(*map)[charIdx] = emitSource;
}
Dictionary<int, _EmitSource>* map = NULL;
emitLocMap.TryAdd(typeDef->GetLatest(), NULL, &map);
_EmitSource emitSource;
emitSource.mEmitParser = emitParser;
emitSource.mIsPrimary = false;
(*map)[charIdx] = emitSource;
}
}
}