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

Method ApplyDeferredLocalAssignData

IDEHelper/Compiler/BfModule.cpp:340–372  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

338}
339
340void BfMethodState::ApplyDeferredLocalAssignData(const BfDeferredLocalAssignData& deferredLocalAssignData)
341{
342 BF_ASSERT(&deferredLocalAssignData != mDeferredLocalAssignData);
343
344 if (deferredLocalAssignData.mLeftBlockUncond)
345 {
346 for (int localIdx = 0; localIdx < (int)mLocals.size(); localIdx++)
347 {
348 auto localDef = mLocals[localIdx];
349 if (localDef->mAssignedKind == BfLocalVarAssignKind_None)
350 {
351 bool hadAssignment = false;
352 if (mDeferredLocalAssignData != NULL)
353 {
354 for (auto& entry : mDeferredLocalAssignData->mAssignedLocals)
355 if (entry.mLocalVar == localDef)
356 hadAssignment = true;
357 }
358 if (!hadAssignment)
359 {
360 LocalDefined(localDef);
361 }
362 }
363 }
364 }
365 else
366 {
367 for (auto& assignedLocal : deferredLocalAssignData.mAssignedLocals)
368 {
369 LocalDefined(assignedLocal.mLocalVar, assignedLocal.mLocalVarField, assignedLocal.mAssignKind, true);
370 }
371 }
372}
373
374void BfMethodState::Reset()
375{

Callers 3

DoIfStatementMethod · 0.80
VisitMethod · 0.80
DoForLessMethod · 0.80

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected