mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-11 04:52:21 +02:00
Perform CheckModifyResult in ??=
This commit is contained in:
parent
8c24eb9278
commit
ee7c057e25
1 changed files with 9 additions and 2 deletions
|
@ -20321,9 +20321,16 @@ void BfExprEvaluator::PerformAssignment(BfAssignmentExpression* assignExpr, bool
|
||||||
|
|
||||||
leftValue = mModule->LoadValue(leftValue);
|
leftValue = mModule->LoadValue(leftValue);
|
||||||
|
|
||||||
if ((binaryOp == BfBinaryOp_NullCoalesce) && (PerformBinaryOperation_NullCoalesce(assignExpr->mOpToken, assignExpr->mLeft, assignExpr->mRight, leftValue, leftValue.mType, &ptr)))
|
if (binaryOp == BfBinaryOp_NullCoalesce)
|
||||||
{
|
{
|
||||||
return;
|
if (!CheckModifyResult(ptr, assignExpr->mOpToken, "assign to", false, false, true))
|
||||||
|
{
|
||||||
|
mModule->CreateValueFromExpression(assignExpr->mRight, ptr.mType, (BfEvalExprFlags)(BfEvalExprFlags_AllowSplat | BfEvalExprFlags_NoCast));
|
||||||
|
mResult = leftValue;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (PerformBinaryOperation_NullCoalesce(assignExpr->mOpToken, assignExpr->mLeft, assignExpr->mRight, leftValue, leftValue.mType, &ptr))
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PerformBinaryOperation(assignExpr->mLeft, assignExpr->mRight, binaryOp, assignExpr->mOpToken, flags, leftValue, rightValue);
|
PerformBinaryOperation(assignExpr->mLeft, assignExpr->mRight, binaryOp, assignExpr->mOpToken, flags, leftValue, rightValue);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue