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
@@ -11515,6 +11515,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
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");
@@ -11565,6 +11570,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
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");
@@ -11575,6 +11585,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
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");