JVM_IR make $deserializeLambda$ method synthetic

This commit is contained in:
Dmitry Petrov
2021-10-21 13:29:21 +03:00
committed by teamcityserver
parent 1dbbe22c8c
commit 6e9cbf52b1
6 changed files with 40 additions and 0 deletions
@@ -0,0 +1,17 @@
// IGNORE_BACKEND: JVM
// FILE: deserializeLambdaMethod.kt
fun plusK(s: String) = s + "K"
// Creating a serializable lambda causes '$deserializeLambda$' method to be generated in the corresponding class.
// Given equivalent code, javac generates
// private static synthetic $deserializeLambda$(Ljava/lang/invoke/SerializedLambda;)Ljava/lang/Object;
val test = Sam(::plusK)
// FILE: Sam.java
import java.io.*;
public interface Sam extends Serializable {
String get(String s);
}
@@ -0,0 +1,9 @@
@kotlin.Metadata
public final class DeserializeLambdaMethodKt {
// source: 'deserializeLambdaMethod.kt'
private final static @org.jetbrains.annotations.NotNull field test: Sam
private synthetic final static method $deserializeLambda$(p0: java.lang.invoke.SerializedLambda): java.lang.Object
static method <clinit>(): void
public final static @org.jetbrains.annotations.NotNull method getTest(): Sam
public final static @org.jetbrains.annotations.NotNull method plusK(@org.jetbrains.annotations.NotNull p0: java.lang.String): java.lang.String
}