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

Fixed resolve-only property devirtualize check

This commit is contained in:
Brian Fiete 2020-06-20 05:19:28 -07:00
parent 156d8413ed
commit e865e675a7

View file

@ -14636,14 +14636,19 @@ BfModuleMethodInstance BfExprEvaluator::GetPropertyMethodInstance(BfMethodDef* m
}
}
else
{
{
auto propTypeInst = mPropTarget.mType->ToTypeInstance();
mModule->PopulateType(propTypeInst, BfPopulateType_DataAndMethods);
auto rawMethodInstance = mModule->GetRawMethodInstance(propTypeInst, methodDef);
BF_ASSERT(rawMethodInstance->mVirtualTableIdx != -1);
if (rawMethodInstance->mVirtualTableIdx == -1)
{
mModule->Fail(StrFormat("Failed to devirtualize %s", mModule->MethodToString(rawMethodInstance).c_str()));
if (!mModule->mCompiler->mIsResolveOnly)
{
// ResolveOnly does not force methods to slot
BF_ASSERT(rawMethodInstance->mVirtualTableIdx != -1);
mModule->Fail(StrFormat("Failed to devirtualize %s", mModule->MethodToString(rawMethodInstance).c_str()));
}
}
else
{