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

Better handling of extern generic constraints

This commit is contained in:
Brian Fiete 2025-01-15 11:25:51 -08:00
parent 4fa46b6a92
commit 1e44392da8
4 changed files with 75 additions and 5 deletions

View file

@ -8566,6 +8566,20 @@ bool BfModule::CheckGenericConstraints(const BfGenericParamSource& genericParamS
if (checkArgType->IsObjectOrInterface())
argIsReferenceType = true;
if ((mCurMethodInstance != NULL) && (mCurMethodInstance->mIsUnspecialized) && (mCurMethodInstance->mMethodInfoEx != NULL))
{
for (int genericParamIdx = (int)mCurMethodInstance->mMethodInfoEx->mMethodGenericArguments.size();
genericParamIdx < mCurMethodInstance->mMethodInfoEx->mGenericParams.size(); genericParamIdx++)
{
auto genericParamInst = mCurMethodInstance->mMethodInfoEx->mGenericParams[genericParamIdx];
if (genericParamInst->mExternType == checkArgType)
{
checkGenericParamFlags |= genericParamInst->mGenericParamFlags;
}
}
}
BfTypeInstance* typeConstraintInst = NULL;
if (genericParamInst->mTypeConstraint != NULL)
typeConstraintInst = genericParamInst->mTypeConstraint->ToTypeInstance();