Fix code generation for Array<C> element access where C is inline class

This commit is contained in:
Dmitry Petrov
2018-08-10 14:22:41 +03:00
parent 8063db5f80
commit 0af33462ef
10 changed files with 226 additions and 8 deletions
@@ -580,6 +580,34 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/arrays/stdlib.kt");
}
@TestMetadata("compiler/testData/codegen/box/arrays/arraysOfInlineClass")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class ArraysOfInlineClass extends AbstractIrJsCodegenBoxTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS_IR, testDataFilePath);
}
@TestMetadata("accessArrayOfInlineClass.kt")
public void testAccessArrayOfInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/accessArrayOfInlineClass.kt");
}
@TestMetadata("accessArrayOfUnsigned.kt")
public void testAccessArrayOfUnsigned() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/accessArrayOfUnsigned.kt");
}
public void testAllFilesPresentInArraysOfInlineClass() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/arrays/arraysOfInlineClass"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JS_IR, true);
}
@TestMetadata("arrayOfInlineClassOfArrayOfInlineClass.kt")
public void testArrayOfInlineClassOfArrayOfInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/arrayOfInlineClassOfArrayOfInlineClass.kt");
}
}
@TestMetadata("compiler/testData/codegen/box/arrays/multiDecl")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -580,6 +580,34 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/arrays/stdlib.kt");
}
@TestMetadata("compiler/testData/codegen/box/arrays/arraysOfInlineClass")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class ArraysOfInlineClass extends AbstractJsCodegenBoxTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS, testDataFilePath);
}
@TestMetadata("accessArrayOfInlineClass.kt")
public void testAccessArrayOfInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/accessArrayOfInlineClass.kt");
}
@TestMetadata("accessArrayOfUnsigned.kt")
public void testAccessArrayOfUnsigned() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/accessArrayOfUnsigned.kt");
}
public void testAllFilesPresentInArraysOfInlineClass() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/arrays/arraysOfInlineClass"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JS, true);
}
@TestMetadata("arrayOfInlineClassOfArrayOfInlineClass.kt")
public void testArrayOfInlineClassOfArrayOfInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/arrayOfInlineClassOfArrayOfInlineClass.kt");
}
}
@TestMetadata("compiler/testData/codegen/box/arrays/multiDecl")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -329,6 +329,34 @@ public class JsLegacyPrimitiveArraysBoxTestGenerated extends AbstractJsLegacyPri
runTest("compiler/testData/codegen/box/arrays/stdlib.kt");
}
@TestMetadata("compiler/testData/codegen/box/arrays/arraysOfInlineClass")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class ArraysOfInlineClass extends AbstractJsLegacyPrimitiveArraysBoxTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS, testDataFilePath);
}
@TestMetadata("accessArrayOfInlineClass.kt")
public void testAccessArrayOfInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/accessArrayOfInlineClass.kt");
}
@TestMetadata("accessArrayOfUnsigned.kt")
public void testAccessArrayOfUnsigned() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/accessArrayOfUnsigned.kt");
}
public void testAllFilesPresentInArraysOfInlineClass() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/arrays/arraysOfInlineClass"), Pattern.compile("^(.+)\\.kt$"), TargetBackend.JS, true);
}
@TestMetadata("arrayOfInlineClassOfArrayOfInlineClass.kt")
public void testArrayOfInlineClassOfArrayOfInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/arrays/arraysOfInlineClass/arrayOfInlineClassOfArrayOfInlineClass.kt");
}
}
@TestMetadata("compiler/testData/codegen/box/arrays/multiDecl")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)