Enable lightweight lambdas (aka invokedynamic) since 2.0

#KT-45375 Fixed
 #KT-58173 Open
This commit is contained in:
Alexander Udalov
2023-04-20 11:07:41 +02:00
committed by Space Team
parent b1b33475fa
commit 3f034e8b67
80 changed files with 4686 additions and 253 deletions
@@ -188,18 +188,6 @@ public final class IntrinsicsKt : java/lang/Object {
}
}
final class SerializableObject$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
public final static SerializableObject$1 INSTANCE
static void <clinit>()
void <init>()
public final kotlinx.serialization.KSerializer invoke()
public java.lang.Object invoke()
}
public final class SerializableObject : java/lang/Object {
private final static kotlin.Lazy $cachedSerializer$delegate
@@ -209,6 +197,8 @@ public final class SerializableObject : java/lang/Object {
private void <init>()
private final static kotlinx.serialization.KSerializer _init_$_anonymous_()
private final kotlinx.serialization.KSerializer get$cachedSerializer()
public final kotlinx.serialization.KSerializer serializer()
@@ -276,82 +276,6 @@ public final class Container : java/lang/Object {
}
}
final class Result$Companion$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
public final static Result$Companion$1 INSTANCE
static void <clinit>() {
NEW (Result$Companion$1)
DUP
INVOKESPECIAL (Result$Companion$1, <init>, ()V)
PUTSTATIC (Result$Companion$1, INSTANCE, LResult$Companion$1;)
RETURN
}
void <init>() {
LABEL (L0)
ALOAD (0)
ICONST_0
INVOKESPECIAL (kotlin/jvm/internal/Lambda, <init>, (I)V)
RETURN
LABEL (L1)
}
public final kotlinx.serialization.KSerializer invoke() {
LABEL (L0)
NEW (kotlinx/serialization/SealedClassSerializer)
DUP
LDC (Result)
LDC (LResult;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
ICONST_2
ANEWARRAY (kotlin/reflect/KClass)
ASTORE (1)
ALOAD (1)
ICONST_0
LDC (LResult$Err;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ALOAD (1)
ICONST_1
LDC (LResult$OK;)
INVOKESTATIC (kotlin/jvm/internal/Reflection, getOrCreateKotlinClass, (Ljava/lang/Class;)Lkotlin/reflect/KClass;)
AASTORE
ALOAD (1)
ICONST_2
ANEWARRAY (kotlinx/serialization/KSerializer)
ASTORE (1)
ALOAD (1)
ICONST_0
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
ICONST_0
ANEWARRAY (java/lang/annotation/Annotation)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/annotation/Annotation;)V)
AASTORE
ALOAD (1)
ICONST_1
GETSTATIC (Result$OK$$serializer, INSTANCE, LResult$OK$$serializer;)
AASTORE
ALOAD (1)
ICONST_0
ANEWARRAY (java/lang/annotation/Annotation)
INVOKESPECIAL (kotlinx/serialization/SealedClassSerializer, <init>, (Ljava/lang/String;Lkotlin/reflect/KClass;[Lkotlin/reflect/KClass;[Lkotlinx/serialization/KSerializer;[Ljava/lang/annotation/Annotation;)V)
CHECKCAST (kotlinx/serialization/KSerializer)
ARETURN
LABEL (L1)
}
public java.lang.Object invoke() {
LABEL (L0)
ALOAD (0)
INVOKEVIRTUAL (Result$Companion$1, invoke, ()Lkotlinx/serialization/KSerializer;)
ARETURN
LABEL (L1)
}
}
public final class Result$Companion : java/lang/Object {
private void <init>() {
LABEL (L0)
@@ -380,51 +304,6 @@ public final class Result$Companion : java/lang/Object {
}
}
final class Result$Err$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
public final static Result$Err$1 INSTANCE
static void <clinit>() {
NEW (Result$Err$1)
DUP
INVOKESPECIAL (Result$Err$1, <init>, ()V)
PUTSTATIC (Result$Err$1, INSTANCE, LResult$Err$1;)
RETURN
}
void <init>() {
LABEL (L0)
ALOAD (0)
ICONST_0
INVOKESPECIAL (kotlin/jvm/internal/Lambda, <init>, (I)V)
RETURN
LABEL (L1)
}
public final kotlinx.serialization.KSerializer invoke() {
LABEL (L0)
LINENUMBER (15)
NEW (kotlinx/serialization/internal/ObjectSerializer)
DUP
LDC (Result.Err)
GETSTATIC (Result$Err, INSTANCE, LResult$Err;)
ICONST_0
ANEWARRAY (java/lang/annotation/Annotation)
INVOKESPECIAL (kotlinx/serialization/internal/ObjectSerializer, <init>, (Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/annotation/Annotation;)V)
CHECKCAST (kotlinx/serialization/KSerializer)
ARETURN
LABEL (L1)
}
public java.lang.Object invoke() {
LABEL (L0)
LINENUMBER (15)
ALOAD (0)
INVOKEVIRTUAL (Result$Err$1, invoke, ()Lkotlinx/serialization/KSerializer;)
ARETURN
LABEL (L1)
}
}
public final class Result$Err : Result {
private final static kotlin.Lazy $cachedSerializer$delegate
@@ -438,8 +317,7 @@ public final class Result$Err : Result {
LABEL (L0)
LINENUMBER (15)
GETSTATIC (kotlin/LazyThreadSafetyMode, PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
GETSTATIC (Result$Err$1, INSTANCE, LResult$Err$1;)
CHECKCAST (kotlin/jvm/functions/Function0)
INVOKEDYNAMIC (invoke, ()Lkotlin/jvm/functions/Function0;, java/lang/invoke/LambdaMetafactory.metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (6), ()Ljava/lang/Object;, Result$Err._init_$_anonymous_()Lkotlinx/serialization/KSerializer; (6), ()Lkotlinx/serialization/KSerializer;)
INVOKESTATIC (kotlin/LazyKt, lazy, (Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;)
PUTSTATIC (Result$Err, $cachedSerializer$delegate, Lkotlin/Lazy;)
RETURN
@@ -455,6 +333,8 @@ public final class Result$Err : Result {
LABEL (L1)
}
private final static kotlinx.serialization.KSerializer _init_$_anonymous_()
private final kotlinx.serialization.KSerializer get$cachedSerializer()
public final kotlinx.serialization.KSerializer serializer() {
@@ -727,8 +607,7 @@ public abstract class Result : java/lang/Object, X {
INVOKESPECIAL (Result$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
PUTSTATIC (Result, Companion, LResult$Companion;)
GETSTATIC (kotlin/LazyThreadSafetyMode, PUBLICATION, Lkotlin/LazyThreadSafetyMode;)
GETSTATIC (Result$Companion$1, INSTANCE, LResult$Companion$1;)
CHECKCAST (kotlin/jvm/functions/Function0)
INVOKEDYNAMIC (invoke, ()Lkotlin/jvm/functions/Function0;, java/lang/invoke/LambdaMetafactory.metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; (6), ()Ljava/lang/Object;, Result._init_$_anonymous_()Lkotlinx/serialization/KSerializer; (6), ()Lkotlinx/serialization/KSerializer;)
INVOKESTATIC (kotlin/LazyKt, lazy, (Lkotlin/LazyThreadSafetyMode;Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;)
PUTSTATIC (Result, $cachedSerializer$delegate, Lkotlin/Lazy;)
RETURN
@@ -760,6 +639,8 @@ public abstract class Result : java/lang/Object, X {
LABEL (L1)
}
private final static kotlinx.serialization.KSerializer _init_$_anonymous_()
public final static kotlin.Lazy access$get$cachedSerializer$delegate$cp()
public void def()