Remove OperationType.PLUGIN_DEFINED type:

instead, plugins should emit the code similar to the TYPE_OF one with
a special call to MagicApiIntrinsics.voidMagicApiCall directly afterwards.

This is required because old compiler need to correctly inline code
rewritten by plugin.
This commit is contained in:
Leonid Startsev
2022-08-31 19:36:06 +02:00
committed by Space
parent 763303fe97
commit ad2adadb36
9 changed files with 123 additions and 146 deletions
@@ -16,11 +16,15 @@ public final class IntrinsicsAdvancedKt : java/lang/Object {
LINENUMBER (18)
ALOAD (0)
ASTORE (2)
BIPUSH (7)
BIPUSH (6)
LDC (T)
INVOKESTATIC (kotlin/jvm/internal/Intrinsics, reifiedOperationMarker, (ILjava/lang/String;)V)
ACONST_NULL
LDC (kotlinx.serialization.serializer.withModule)
INVOKESTATIC (kotlin/jvm/internal/MagicApiIntrinsics, voidMagicApiCall, (Ljava/lang/Object;)V)
ALOAD (2)
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlinx/serialization/modules/SerializersModule;)Lkotlinx/serialization/KSerializer;)
SWAP
INVOKESTATIC (kotlinx/serialization/SerializersKt, serializer, (Lkotlinx/serialization/modules/SerializersModule;Lkotlin/reflect/KType;)Lkotlinx/serialization/KSerializer;)
ARETURN
LABEL (L2)
}