ForLoopsLowering: Handle Iterable.withIndex() where the type is a

bounded type parameter.

TODO: Handle Sequences by extending DefaultIterableHandler.
This commit is contained in:
Mark Punzalan
2019-11-26 23:19:00 -08:00
committed by max-kammerer
parent e8252ea874
commit 1a2e09e6a5
20 changed files with 231 additions and 12 deletions
@@ -4499,6 +4499,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSeqWithIndexStops.kt");
}
@TestMetadata("forInCharSequenceTypeParameterWithIndex.kt")
public void testForInCharSequenceTypeParameterWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceTypeParameterWithIndex.kt");
}
@TestMetadata("forInCharSequenceWithIndex.kt")
public void testForInCharSequenceWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndex.kt");
@@ -4572,6 +4577,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInEmptyListWithIndex.kt");
}
@TestMetadata("forInIterableTypeParameterWithIndex.kt")
public void testForInIterableTypeParameterWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInIterableTypeParameterWithIndex.kt");
}
@TestMetadata("forInIterableWithIndexCheckSideEffects.kt")
public void testForInIterableWithIndexCheckSideEffects() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInIterableWithIndexCheckSideEffects.kt");
@@ -4625,6 +4635,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInEmptySequenceWithIndex.kt");
}
@TestMetadata("forInSequenceTypeParameterWithIndex.kt")
public void testForInSequenceTypeParameterWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceTypeParameterWithIndex.kt");
}
@TestMetadata("forInSequenceWithIndex.kt")
public void testForInSequenceWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndex.kt");
@@ -4509,6 +4509,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSeqWithIndexStops.kt");
}
@TestMetadata("forInCharSequenceTypeParameterWithIndex.kt")
public void testForInCharSequenceTypeParameterWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceTypeParameterWithIndex.kt");
}
@TestMetadata("forInCharSequenceWithIndex.kt")
public void testForInCharSequenceWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInCharSequenceWithIndex/forInCharSequenceWithIndex.kt");
@@ -4582,6 +4587,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInEmptyListWithIndex.kt");
}
@TestMetadata("forInIterableTypeParameterWithIndex.kt")
public void testForInIterableTypeParameterWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInIterableTypeParameterWithIndex.kt");
}
@TestMetadata("forInIterableWithIndexCheckSideEffects.kt")
public void testForInIterableWithIndexCheckSideEffects() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInIterableWithIndex/forInIterableWithIndexCheckSideEffects.kt");
@@ -4635,6 +4645,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInEmptySequenceWithIndex.kt");
}
@TestMetadata("forInSequenceTypeParameterWithIndex.kt")
public void testForInSequenceTypeParameterWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceTypeParameterWithIndex.kt");
}
@TestMetadata("forInSequenceWithIndex.kt")
public void testForInSequenceWithIndex() throws Exception {
runTest("compiler/testData/codegen/box/controlStructures/forInSequenceWithIndex/forInSequenceWithIndex.kt");