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

Properly add dependencies on operator constraint types

This commit is contained in:
Brian Fiete 2022-01-01 10:39:25 -05:00
parent 476df62a24
commit 3a8e4ebc9d
3 changed files with 22 additions and 25 deletions

View file

@ -108,14 +108,7 @@ BfGenericExtensionEntry* BfModule::BuildGenericExtensionInfo(BfTypeInstance* gen
}
for (auto genericParam : genericExEntry->mGenericParams)
{
if (!genericParam->mExternType->IsGenericParam())
AddDependency(genericParam->mExternType, mCurTypeInstance, BfDependencyMap::DependencyFlag_Constraint);
for (auto constraintTypeInst : genericParam->mInterfaceConstraints)
AddDependency(constraintTypeInst, mCurTypeInstance, BfDependencyMap::DependencyFlag_Constraint);
if (genericParam->mTypeConstraint != NULL)
AddDependency(genericParam->mTypeConstraint, mCurTypeInstance, BfDependencyMap::DependencyFlag_Constraint);
}
AddDependency(genericParam, mCurTypeInstance);
return genericExEntry;
}
@ -301,15 +294,8 @@ bool BfModule::FinishGenericParams(BfType* resolvedTypeRef)
for (auto typeRef : deferredResolveTypes)
auto constraintType = ResolveTypeRef(typeRef, BfPopulateType_Declaration, BfResolveTypeRefFlag_None);
for (auto genericParam : genericTypeInst->mGenericTypeInfo->mGenericParams)
{
if (!genericParam->mExternType->IsGenericParam())
AddDependency(genericParam->mExternType, mCurTypeInstance, BfDependencyMap::DependencyFlag_Constraint);
for (auto constraintTypeInst : genericParam->mInterfaceConstraints)
AddDependency(constraintTypeInst, mCurTypeInstance, BfDependencyMap::DependencyFlag_Constraint);
if (genericParam->mTypeConstraint != NULL)
AddDependency(genericParam->mTypeConstraint, mCurTypeInstance, BfDependencyMap::DependencyFlag_Constraint);
}
for (auto genericParam : genericTypeInst->mGenericTypeInfo->mGenericParams)
AddDependency(genericParam, mCurTypeInstance);
return true;
}