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

Method VisitCodeBlock

IDEHelper/Compiler/BfStmtEvaluator.cpp:3486–3511  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3484}
3485
3486void BfModule::VisitCodeBlock(BfBlock* block, BfIRBlock continueBlock, BfIRBlock breakBlock, BfIRBlock fallthroughBlock, bool defaultBreak, bool* hadReturn, BfLabelNode* labelNode, bool closeScope, BfEmbeddedStatementFlags flags)
3487{
3488 BfBreakData breakData;
3489 breakData.mIRContinueBlock = continueBlock;
3490 breakData.mIRBreakBlock = breakBlock;
3491 breakData.mIRFallthroughBlock = fallthroughBlock;
3492 breakData.mScope = mCurMethodState->mCurScope;
3493 breakData.mPrevBreakData = mCurMethodState->mBreakData;
3494
3495 SetAndRestoreValue<BfBreakData*> prevBreakData(mCurMethodState->mBreakData, &breakData);
3496 VisitEmbeddedStatement(block, NULL, flags);
3497
3498 if (closeScope)
3499 RestoreScopeState();
3500
3501 if ((!mCurMethodState->mLeftBlockUncond) && (defaultBreak))
3502 {
3503 mBfIRBuilder->CreateBr(breakBlock);
3504 }
3505 if (hadReturn != NULL)
3506 {
3507 *hadReturn = mCurMethodState->mHadReturn;
3508 mCurMethodState->SetHadReturn(false);
3509 mCurMethodState->mLeftBlockUncond = false;
3510 }
3511}
3512
3513void BfModule::VisitCodeBlock(BfBlock* block)
3514{

Callers 2

VisitMethod · 0.80
InjectMixinMethod · 0.80

Calls 15

FailFunction · 0.85
BfTypedValueClass · 0.85
SetHadReturnMethod · 0.80
GetRootMethodStateMethod · 0.80
TryGetValueMethod · 0.80
IsAutocompleteNodeMethod · 0.80
IsLastMethod · 0.80
IsExpressionMethod · 0.80
IsAddrMethod · 0.80
IsReadOnlyMethod · 0.80

Tested by

no test coverage detected