| 20918 | } |
| 20919 | |
| 20920 | void BfExprEvaluator::DoTupleAssignment(BfAssignmentExpression* assignExpr) |
| 20921 | { |
| 20922 | auto tupleExpr = BfNodeDynCast<BfTupleExpression>(assignExpr->mLeft); |
| 20923 | |
| 20924 | DeferredTupleAssignData deferredTupleAssignData; |
| 20925 | PopulateDeferrredTupleAssignData(tupleExpr, deferredTupleAssignData); |
| 20926 | BfTypeInstance* tupleType = deferredTupleAssignData.mTupleType; |
| 20927 | |
| 20928 | BfTypedValue rightValue; |
| 20929 | if (assignExpr->mRight != NULL) |
| 20930 | { |
| 20931 | rightValue = mModule->CreateValueFromExpression(assignExpr->mRight, tupleType); |
| 20932 | } |
| 20933 | if (!rightValue) |
| 20934 | { |
| 20935 | tupleType = mModule->SantizeTupleType(tupleType); |
| 20936 | rightValue = mModule->GetDefaultTypedValue(tupleType); |
| 20937 | } |
| 20938 | rightValue = mModule->LoadValue(rightValue); |
| 20939 | |
| 20940 | AssignDeferrredTupleAssignData(assignExpr, deferredTupleAssignData, rightValue); |
| 20941 | |
| 20942 | mResult = rightValue; |
| 20943 | } |
| 20944 | |
| 20945 | BfTypedValue BfExprEvaluator::PerformAssignment_CheckOp(BfAssignmentExpression* assignExpr, bool deferBinop, BfTypedValue& leftValue, BfTypedValue& rightValue, bool& evaluatedRight) |
| 20946 | { |
nothing calls this directly
no test coverage detected