KT-38337 Fix inline class value coercion in delegated members

This commit is contained in:
Dmitry Petrov
2020-04-20 18:25:25 +03:00
parent 29f19c78f2
commit 318d4d17ba
15 changed files with 586 additions and 36 deletions
@@ -10789,11 +10789,6 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/inlineFunctionInsideInlineClass.kt");
}
@TestMetadata("interfaceImplementationByDelegation.kt")
public void testInterfaceImplementationByDelegation() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceImplementationByDelegation.kt");
}
@TestMetadata("iterateOverArrayOfInlineClassValues.kt")
public void testIterateOverArrayOfInlineClassValues() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/iterateOverArrayOfInlineClassValues.kt");
@@ -11765,6 +11760,59 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
}
}
@TestMetadata("compiler/testData/codegen/box/inlineClasses/interfaceDelegation")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class InterfaceDelegation extends AbstractIrJsCodegenBoxTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS_IR, testDataFilePath);
}
public void testAllFilesPresentInInterfaceDelegation() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/interfaceDelegation"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true);
}
@TestMetadata("interfaceImplementationByDelegation.kt")
public void testInterfaceImplementationByDelegation() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/interfaceImplementationByDelegation.kt");
}
@TestMetadata("kt38337.kt")
public void testKt38337() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/kt38337.kt");
}
@TestMetadata("memberExtValDelegationWithInlineClassParameterTypes.kt")
public void testMemberExtValDelegationWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberExtValDelegationWithInlineClassParameterTypes.kt");
}
@TestMetadata("memberExtVarDelegationWithInlineClassParameterTypes.kt")
public void testMemberExtVarDelegationWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberExtVarDelegationWithInlineClassParameterTypes.kt");
}
@TestMetadata("memberFunDelegatedToInlineClassInt.kt")
public void testMemberFunDelegatedToInlineClassInt() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegatedToInlineClassInt.kt");
}
@TestMetadata("memberFunDelegatedToInlineClassLong.kt")
public void testMemberFunDelegatedToInlineClassLong() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegatedToInlineClassLong.kt");
}
@TestMetadata("memberFunDelegationToInlineClassWithInlineClassParameterTypes.kt")
public void testMemberFunDelegationToInlineClassWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegationToInlineClassWithInlineClassParameterTypes.kt");
}
@TestMetadata("memberFunDelegationWithInlineClassParameterTypes.kt")
public void testMemberFunDelegationWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegationWithInlineClassParameterTypes.kt");
}
}
@TestMetadata("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -10854,11 +10854,6 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/inlineFunctionInsideInlineClass.kt");
}
@TestMetadata("interfaceImplementationByDelegation.kt")
public void testInterfaceImplementationByDelegation() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceImplementationByDelegation.kt");
}
@TestMetadata("iterateOverArrayOfInlineClassValues.kt")
public void testIterateOverArrayOfInlineClassValues() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/iterateOverArrayOfInlineClassValues.kt");
@@ -11830,6 +11825,59 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
}
}
@TestMetadata("compiler/testData/codegen/box/inlineClasses/interfaceDelegation")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class InterfaceDelegation extends AbstractJsCodegenBoxTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS, testDataFilePath);
}
public void testAllFilesPresentInInterfaceDelegation() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/interfaceDelegation"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS, true);
}
@TestMetadata("interfaceImplementationByDelegation.kt")
public void testInterfaceImplementationByDelegation() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/interfaceImplementationByDelegation.kt");
}
@TestMetadata("kt38337.kt")
public void testKt38337() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/kt38337.kt");
}
@TestMetadata("memberExtValDelegationWithInlineClassParameterTypes.kt")
public void testMemberExtValDelegationWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberExtValDelegationWithInlineClassParameterTypes.kt");
}
@TestMetadata("memberExtVarDelegationWithInlineClassParameterTypes.kt")
public void testMemberExtVarDelegationWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberExtVarDelegationWithInlineClassParameterTypes.kt");
}
@TestMetadata("memberFunDelegatedToInlineClassInt.kt")
public void testMemberFunDelegatedToInlineClassInt() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegatedToInlineClassInt.kt");
}
@TestMetadata("memberFunDelegatedToInlineClassLong.kt")
public void testMemberFunDelegatedToInlineClassLong() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegatedToInlineClassLong.kt");
}
@TestMetadata("memberFunDelegationToInlineClassWithInlineClassParameterTypes.kt")
public void testMemberFunDelegationToInlineClassWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegationToInlineClassWithInlineClassParameterTypes.kt");
}
@TestMetadata("memberFunDelegationWithInlineClassParameterTypes.kt")
public void testMemberFunDelegationWithInlineClassParameterTypes() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/interfaceDelegation/memberFunDelegationWithInlineClassParameterTypes.kt");
}
}
@TestMetadata("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)