ForLoopsLowering: Fix issue with break/continue in loop over withIndex.

This commit is contained in:
Mark Punzalan
2020-01-29 16:24:28 -08:00
committed by max-kammerer
parent 724eda8fdb
commit 3ee344b836
12 changed files with 265 additions and 27 deletions
@@ -4469,6 +4469,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInArrayWithIndex/forInArrayOfPrimArrayWithIndex.kt");
}
@TestMetadata("forInArrayWithIndexBreakAndContinue.kt")
public void testForInArrayWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInArrayWithIndex/forInArrayWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInArrayWithIndexContinuesAsUnmodified.kt")
public void testForInArrayWithIndexContinuesAsUnmodified() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInArrayWithIndex/forInArrayWithIndexContinuesAsUnmodified.kt");
@@ -4582,6 +4587,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndex.kt");
}
@TestMetadata("forInCharSequenceWithIndexBreakAndContinue.kt")
public void testForInCharSequenceWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInCharSequenceWithIndexCheckSideEffects.kt")
public void testForInCharSequenceWithIndexCheckSideEffects() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndexCheckSideEffects.kt");
@@ -4675,6 +4685,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInListWithIndex.kt");
}
@TestMetadata("forInListWithIndexBreakAndContinue.kt")
public void testForInListWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInListWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInListWithIndexNoElementVar.kt")
public void testForInListWithIndexNoElementVar() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInListWithIndexNoElementVar.kt");
@@ -4718,6 +4733,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndex.kt");
}
@TestMetadata("forInSequenceWithIndexBreakAndContinue.kt")
public void testForInSequenceWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInSequenceWithIndexCheckSideEffects.kt")
public void testForInSequenceWithIndexCheckSideEffects() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndexCheckSideEffects.kt");
@@ -16399,6 +16419,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/ranges/forInProgressionWithIndex/forInUntilWithIndex.kt");
}
@TestMetadata("forInWithIndexBreakAndContinue.kt")
public void testForInWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/ranges/forInProgressionWithIndex/forInWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInWithIndexNoIndexOrElementVar.kt")
public void testForInWithIndexNoIndexOrElementVar() throws Exception {
runTest("compiler/testData/codegen/box/ranges/forInProgressionWithIndex/forInWithIndexNoIndexOrElementVar.kt");
@@ -4469,6 +4469,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInArrayWithIndex/forInArrayOfPrimArrayWithIndex.kt");
}
@TestMetadata("forInArrayWithIndexBreakAndContinue.kt")
public void testForInArrayWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInArrayWithIndex/forInArrayWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInArrayWithIndexContinuesAsUnmodified.kt")
public void testForInArrayWithIndexContinuesAsUnmodified() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInArrayWithIndex/forInArrayWithIndexContinuesAsUnmodified.kt");
@@ -4582,6 +4587,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndex.kt");
}
@TestMetadata("forInCharSequenceWithIndexBreakAndContinue.kt")
public void testForInCharSequenceWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInCharSequenceWithIndexCheckSideEffects.kt")
public void testForInCharSequenceWithIndexCheckSideEffects() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndexCheckSideEffects.kt");
@@ -4675,6 +4685,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInListWithIndex.kt");
}
@TestMetadata("forInListWithIndexBreakAndContinue.kt")
public void testForInListWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInListWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInListWithIndexNoElementVar.kt")
public void testForInListWithIndexNoElementVar() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInListWithIndexNoElementVar.kt");
@@ -4718,6 +4733,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndex.kt");
}
@TestMetadata("forInSequenceWithIndexBreakAndContinue.kt")
public void testForInSequenceWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInSequenceWithIndexCheckSideEffects.kt")
public void testForInSequenceWithIndexCheckSideEffects() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndexCheckSideEffects.kt");
@@ -16504,6 +16524,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/ranges/forInProgressionWithIndex/forInUntilWithIndex.kt");
}
@TestMetadata("forInWithIndexBreakAndContinue.kt")
public void testForInWithIndexBreakAndContinue() throws Exception {
runTest("compiler/testData/codegen/box/ranges/forInProgressionWithIndex/forInWithIndexBreakAndContinue.kt");
}
@TestMetadata("forInWithIndexNoIndexOrElementVar.kt")
public void testForInWithIndexNoIndexOrElementVar() throws Exception {
runTest("compiler/testData/codegen/box/ranges/forInProgressionWithIndex/forInWithIndexNoIndexOrElementVar.kt");