diff --git a/codeOptimizers/src/prog8/optimizer/StatementOptimizer.kt b/codeOptimizers/src/prog8/optimizer/StatementOptimizer.kt index 4d9dd7193..a07e68808 100644 --- a/codeOptimizers/src/prog8/optimizer/StatementOptimizer.kt +++ b/codeOptimizers/src/prog8/optimizer/StatementOptimizer.kt @@ -176,16 +176,6 @@ class StatementOptimizer(private val program: Program, } } - val iterationCount = forLoop.constIterationCount(program) - if(iterationCount!=null) { - val loopName = forLoop.loopVar.nameInSource - if(!forLoop.iterable.referencesIdentifier(loopName) && !forLoop.body.referencesIdentifier(loopName)) { - errors.warn("for loop can be replaced with repeat loop", forLoop.position) - val repeat = RepeatLoop(NumericLiteral.optimalNumeric(iterationCount, forLoop.position), forLoop.body, forLoop.position) - return listOf(IAstModification.ReplaceNode(forLoop, repeat, parent)) - } - } - return noModifications } diff --git a/compiler/test/vm/TestCompilerVirtual.kt b/compiler/test/vm/TestCompilerVirtual.kt index 3654bb50c..7e8c58412 100644 --- a/compiler/test/vm/TestCompilerVirtual.kt +++ b/compiler/test/vm/TestCompilerVirtual.kt @@ -210,7 +210,7 @@ main { var result = compileText(target, true, src, writeAssembly = true)!! var virtfile = result.compilationOptions.outputDir.resolve(result.compilerAst.name + ".p8ir") VmRunner().runAndTestProgram(virtfile.readText()) { vm -> - vm.stepCount shouldBe 36 + vm.stepCount shouldBe 48 } result = compileText(target, false, src, writeAssembly = true)!! diff --git a/docs/source/todo.rst b/docs/source/todo.rst index d28f97d31..657ec66ef 100644 --- a/docs/source/todo.rst +++ b/docs/source/todo.rst @@ -1,6 +1,9 @@ TODO ==== +- check for name clash: variable vs block name + + ...