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

Error fix for readonly field

This commit is contained in:
Brian Fiete 2020-09-17 05:22:02 -07:00
parent 74bbdbadbf
commit 1be4c24e45

View file

@ -15743,9 +15743,33 @@ bool BfExprEvaluator::CheckModifyResult(BfTypedValue typedVal, BfAstNode* refNod
} }
} }
else else
{
if ((mResultLocalVarField != 0) && (!localVar->mIsReadOnly))
{
auto typeInst = localVar->mResolvedType->ToTypeInstance();
int dataIdx = mResultLocalVarField - 1;
if (typeInst != NULL)
{
for (auto& field : typeInst->mFieldInstances)
{
if (field.mDataIdx == dataIdx)
{
error = mModule->Fail(StrFormat("Cannot %s readonly field '%s.%s'.", modifyType,
mModule->TypeToString(typeInst).c_str(),
field.GetFieldDef()->mName.c_str()), refNode);
break;
}
}
}
}
if (error == NULL)
{ {
error = mModule->Fail(StrFormat("Cannot %s read-only local variable '%s'.", modifyType, error = mModule->Fail(StrFormat("Cannot %s read-only local variable '%s'.", modifyType,
localVar->mName.c_str()), refNode); localVar->mName.c_str()), refNode);
}
return false; return false;
} }
} }