Enable lightweight lambdas (aka invokedynamic) since 2.0
#KT-45375 Fixed #KT-58173 Open
This commit is contained in:
committed by
Space Team
parent
b1b33475fa
commit
3f034e8b67
@@ -212,7 +212,7 @@ class MetadataSmokeTest {
|
||||
fun testDisplayNameSample() {
|
||||
class A {}
|
||||
|
||||
val b: (Int) -> Int = fun(x: Int) = x
|
||||
val b: (Int) -> Int = @JvmSerializableLambda fun(x: Int) = x
|
||||
|
||||
assertEquals("Class .kotlinx/metadata/test/MetadataSmokeTest\$testDisplayNameSample\$A", displayName(A::class.java.getMetadata()))
|
||||
assertEquals("Lambda <no name provided>", displayName(b::class.java.getMetadata()))
|
||||
|
||||
@@ -15,7 +15,7 @@ import kotlin.test.assertFailsWith
|
||||
|
||||
class WritersContractTest {
|
||||
val classMd = WritersContractTest::class.java.getMetadata()
|
||||
val l: () -> Unit = {}
|
||||
val l: () -> Unit = @JvmSerializableLambda {}
|
||||
val lambdaMd = l::class.java.getMetadata()
|
||||
val fileFacadeMd = Class.forName("kotlinx.metadata.test.testdata.FileFacade").getMetadata()
|
||||
val multiFileFacadeMd = Class.forName("kotlinx.metadata.test.testdata.MultiFileClassFacade").getMetadata()
|
||||
|
||||
+2
-17
@@ -53,25 +53,10 @@ package {
|
||||
}
|
||||
// IntersectionTypeInLambdaLiteralAndDelegatedPropertyKt$test$1.class
|
||||
// ------------------------------------------
|
||||
lambda {
|
||||
|
||||
// signature: invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
|
||||
local final fun kotlin/Nothing.<anonymous>(it: kotlin/Nothing): kotlin/Any
|
||||
}
|
||||
synthetic class
|
||||
// IntersectionTypeInLambdaLiteralAndDelegatedPropertyKt$test$2.class
|
||||
// ------------------------------------------
|
||||
lambda {
|
||||
|
||||
// signature: invoke(LInv;LInv;)LInv;
|
||||
local final fun kotlin/Nothing.<anonymous>(it: kotlin/Nothing): Inv<out kotlin/Any>
|
||||
}
|
||||
// IntersectionTypeInLambdaLiteralAndDelegatedPropertyKt$test$d$2.class
|
||||
// ------------------------------------------
|
||||
lambda {
|
||||
|
||||
// signature: invoke()Ljava/lang/Object;
|
||||
local final fun <anonymous>(): kotlin/Any
|
||||
}
|
||||
synthetic class
|
||||
// Inv.class
|
||||
// ------------------------------------------
|
||||
public final class Inv<T#0 /* T */> : kotlin/Any {
|
||||
|
||||
-14
@@ -7,20 +7,6 @@ package {
|
||||
|
||||
// module name: test-module
|
||||
}
|
||||
// LambdaKt$test$f$1.class
|
||||
// ------------------------------------------
|
||||
lambda {
|
||||
|
||||
// signature: invoke()V
|
||||
local final fun <anonymous>(): kotlin/Unit
|
||||
}
|
||||
// LambdaKt$test$g$1.class
|
||||
// ------------------------------------------
|
||||
lambda {
|
||||
|
||||
// signature: invoke(Lkotlin/Unit;[ILjava/util/Set;)Ljava/lang/String;
|
||||
local final fun kotlin/Unit.<no name provided>(s: kotlin/IntArray?, t: kotlin/collections/Set<kotlin/Double>): kotlin/String
|
||||
}
|
||||
// META-INF/test-module.kotlin_module
|
||||
// ------------------------------------------
|
||||
module {
|
||||
|
||||
Reference in New Issue
Block a user