Devirtualization fails to eliminate boxing in function reference context
^KT-49847 Fixed Merge-request: KT-MR-6460 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
+6
@@ -41912,6 +41912,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericFunctionReferenceSignature.kt")
|
||||
public void testGenericFunctionReferenceSignature() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericFunctionReferenceSignature.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericMethodSignature.kt")
|
||||
public void testGenericMethodSignature() throws Exception {
|
||||
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
// WITH_REFLECT
|
||||
|
||||
package test
|
||||
|
||||
fun <T> foo(x: T) = x
|
||||
|
||||
fun box(): String {
|
||||
val bar: kotlin.reflect.KFunction1<Int, Int> = ::foo
|
||||
val returnType = bar.returnType
|
||||
if (returnType.toString() != "T") return returnType.toString()
|
||||
return "OK"
|
||||
}
|
||||
+6
@@ -41306,6 +41306,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericFunctionReferenceSignature.kt")
|
||||
public void testGenericFunctionReferenceSignature() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericFunctionReferenceSignature.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericMethodSignature.kt")
|
||||
public void testGenericMethodSignature() throws Exception {
|
||||
|
||||
+6
@@ -41912,6 +41912,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericFunctionReferenceSignature.kt")
|
||||
public void testGenericFunctionReferenceSignature() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericFunctionReferenceSignature.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericMethodSignature.kt")
|
||||
public void testGenericMethodSignature() throws Exception {
|
||||
|
||||
+5
@@ -33159,6 +33159,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericBackingFieldSignature.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("genericFunctionReferenceSignature.kt")
|
||||
public void testGenericFunctionReferenceSignature() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericFunctionReferenceSignature.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("genericMethodSignature.kt")
|
||||
public void testGenericMethodSignature() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/reflection/genericSignature/genericMethodSignature.kt");
|
||||
|
||||
Reference in New Issue
Block a user