MCPcopy Create free account
hub / github.com/beefytech/Beef / DoTupleAssignment

Method DoTupleAssignment

IDEHelper/Compiler/BfExprEvaluator.cpp:20920–20943  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

20918}
20919
20920void 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
20945BfTypedValue BfExprEvaluator::PerformAssignment_CheckOp(BfAssignmentExpression* assignExpr, bool deferBinop, BfTypedValue& leftValue, BfTypedValue& rightValue, bool& evaluatedRight)
20946{

Callers

nothing calls this directly

Calls 4

SantizeTupleTypeMethod · 0.80
LoadValueMethod · 0.80
GetDefaultTypedValueMethod · 0.45

Tested by

no test coverage detected