Don't remap inline function args requiring inline class boxing/unboxing

Same as for primitives: inline lambda expects to see a boxed value,
so, even if an argument is a local variable, it can't be remapped,
because it contains unboxed representation.
This commit is contained in:
Dmitry Petrov
2018-08-23 18:09:14 +03:00
parent 6e2d05cd94
commit 2a524920a5
10 changed files with 200 additions and 6 deletions
@@ -10080,6 +10080,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/defaultFunctionsFromAnyForInlineClass.kt");
}
@TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt")
public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/defaultValueOfInlineClassTypeInInlineFun.kt");
}
@TestMetadata("elvisWithInlineClassAndNullConstant.kt")
public void testElvisWithInlineClassAndNullConstant() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/elvisWithInlineClassAndNullConstant.kt");
@@ -10125,6 +10130,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassWithCustomEquals.kt");
}
@TestMetadata("inlineClassesAsInlineFunParameters.kt")
public void testInlineClassesAsInlineFunParameters() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesAsInlineFunParameters.kt");
}
@TestMetadata("inlineClassesCheckCast.kt")
public void testInlineClassesCheckCast() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesCheckCast.kt");
@@ -10135,6 +10145,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesInInlineLambdaParameters.kt");
}
@TestMetadata("inlineClassesRefTypesInInlineLambdaParameters.kt")
public void testInlineClassesRefTypesInInlineLambdaParameters() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesRefTypesInInlineLambdaParameters.kt");
}
@TestMetadata("inlineFunctionInsideInlineClass.kt")
public void testInlineFunctionInsideInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineFunctionInsideInlineClass.kt");
@@ -11140,6 +11140,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/defaultFunctionsFromAnyForInlineClass.kt");
}
@TestMetadata("defaultValueOfInlineClassTypeInInlineFun.kt")
public void testDefaultValueOfInlineClassTypeInInlineFun() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/defaultValueOfInlineClassTypeInInlineFun.kt");
}
@TestMetadata("elvisWithInlineClassAndNullConstant.kt")
public void testElvisWithInlineClassAndNullConstant() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/elvisWithInlineClassAndNullConstant.kt");
@@ -11185,6 +11190,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassWithCustomEquals.kt");
}
@TestMetadata("inlineClassesAsInlineFunParameters.kt")
public void testInlineClassesAsInlineFunParameters() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesAsInlineFunParameters.kt");
}
@TestMetadata("inlineClassesCheckCast.kt")
public void testInlineClassesCheckCast() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesCheckCast.kt");
@@ -11195,6 +11205,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesInInlineLambdaParameters.kt");
}
@TestMetadata("inlineClassesRefTypesInInlineLambdaParameters.kt")
public void testInlineClassesRefTypesInInlineLambdaParameters() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineClassesRefTypesInInlineLambdaParameters.kt");
}
@TestMetadata("inlineFunctionInsideInlineClass.kt")
public void testInlineFunctionInsideInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/inlineClasses/inlineFunctionInsideInlineClass.kt");