diff --git a/IDEHelper/Compiler/BfStmtEvaluator.cpp b/IDEHelper/Compiler/BfStmtEvaluator.cpp index f0a088cb..39528f87 100644 --- a/IDEHelper/Compiler/BfStmtEvaluator.cpp +++ b/IDEHelper/Compiler/BfStmtEvaluator.cpp @@ -6200,14 +6200,12 @@ void BfModule::Visit(BfForEachStatement* forEachStmt) deferredLocalAssignData.mVarIdBarrier = mCurMethodState->GetRootMethodState()->mCurLocalVarId; SetAndRestoreValue prevDLA(mCurMethodState->mDeferredLocalAssignData, &deferredLocalAssignData); + SetAndRestoreValue prevIgnoreWrites(mBfIRBuilder->mIgnoreWrites); + if ((target.mType->IsSizedArray()) && (((BfSizedArrayType*)target.mType)->mElementCount == 0)) { EmitEnsureInstructionAt(); - SetAndRestoreValue ignoreWrites(mBfIRBuilder->mIgnoreWrites, true); - if (forEachStmt->mEmbeddedStatement != NULL) - VisitEmbeddedStatement(forEachStmt->mEmbeddedStatement); - RestoreScopeState(); - return; + mBfIRBuilder->mIgnoreWrites = true; } BfIdentifierNode* nameNode = NULL;