1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00

Fixed const eval dependency issues

This commit is contained in:
Brian Fiete 2020-12-31 11:31:19 -08:00
parent fa65029dfa
commit 86b5e65015
9 changed files with 82 additions and 22 deletions

View file

@ -2175,6 +2175,8 @@ void BfCompiler::UpdateDependencyMap(bool deleteUnusued, bool& didWork)
}
}
depType->mDependencyMap.mFlagsUnion = BfDependencyMap::DependencyFlag_None;
// Not combined with previous loop because PopulateType could modify typeInst->mDependencyMap
for (auto itr = depType->mDependencyMap.begin(); itr != depType->mDependencyMap.end();)
{
@ -2240,6 +2242,8 @@ void BfCompiler::UpdateDependencyMap(bool deleteUnusued, bool& didWork)
++itr;
}
depType->mDependencyMap.mFlagsUnion = (BfDependencyMap::DependencyFlags)(depType->mDependencyMap.mFlagsUnion | depData.mFlags);
}
if ((!depType->IsGenericTypeInstance() && (!depType->IsBoxed())) ||
@ -3336,6 +3340,13 @@ void BfCompiler::UpdateRevisedTypes()
(compositeTypeDef->mDefState != BfTypeDef::DefState_InlinedInternals_Changed))
compositeTypeDef->mDefState = BfTypeDef::DefState_Internals_Changed;
}
else if (checkTypeDef->mDefState == BfTypeDef::DefState_Refresh)
{
if ((compositeTypeDef->mDefState != BfTypeDef::DefState_Signature_Changed) &&
(compositeTypeDef->mDefState != BfTypeDef::DefState_InlinedInternals_Changed) &&
(compositeTypeDef->mDefState != BfTypeDef::DefState_Internals_Changed))
compositeTypeDef->mDefState = BfTypeDef::DefState_Refresh;
}
BF_ASSERT(checkTypeDef->mIsPartial);
if (checkTypeDef->mNextRevision != NULL)