1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Fixed generic arg reification issue

This commit is contained in:
Brian Fiete 2021-01-05 05:53:44 -08:00
parent 97d7324874
commit abd883212f

View file

@ -580,7 +580,18 @@ void BfModule::InitType(BfType* resolvedTypeRef, BfPopulateType populateType)
// (genericTypeInst->mGenericParams.size() == genericTypeInst->mTypeGenericArguments.size()));
for (auto typeGenericArg : genericTypeInst->mGenericTypeInfo->mTypeGenericArguments)
BF_ASSERT((typeGenericArg->mRebuildFlags & BfTypeRebuildFlag_Deleted) == 0);
{
BF_ASSERT((typeGenericArg->mRebuildFlags & BfTypeRebuildFlag_Deleted) == 0);
if (mIsReified)
{
// Try to reify any generic args
for (auto genericArg : typeInst->mGenericTypeInfo->mTypeGenericArguments)
{
if (!genericArg->IsReified())
PopulateType(genericArg, BfPopulateType_Declaration);
}
}
}
}
if (!mContext->mSavedTypeDataMap.IsEmpty())
@ -984,6 +995,15 @@ void BfModule::PopulateType(BfType* resolvedTypeRef, BfPopulateType populateType
// }
// else
// mContext->RebuildType(typeInst, false, false);
if (typeInst->mGenericTypeInfo != NULL)
{
for (auto genericArg : typeInst->mGenericTypeInfo->mTypeGenericArguments)
{
if (!genericArg->IsReified())
PopulateType(genericArg, BfPopulateType_Declaration);
}
}
}
}
else