[JVM IR] Fix plugin API for JVM IR
- Unmute ktx.serialization test
This commit is contained in:
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.jvm
|
|||||||
import org.jetbrains.kotlin.backend.common.CodegenUtil
|
import org.jetbrains.kotlin.backend.common.CodegenUtil
|
||||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||||
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||||
|
import org.jetbrains.kotlin.backend.common.ir.BuiltinSymbolsBase
|
||||||
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
|
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
|
||||||
import org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen
|
import org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen
|
||||||
import org.jetbrains.kotlin.backend.jvm.lower.MultifileFacadeFileEntry
|
import org.jetbrains.kotlin.backend.jvm.lower.MultifileFacadeFileEntry
|
||||||
@@ -53,20 +54,24 @@ object JvmBackendFacade {
|
|||||||
mangler
|
mangler
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val pluginContext by lazy {
|
||||||
|
psi2irContext.run {
|
||||||
|
val symbols = BuiltinSymbolsBase(irBuiltIns, moduleDescriptor.builtIns, symbolTable.lazyWrapper)
|
||||||
|
IrPluginContext(
|
||||||
|
moduleDescriptor, bindingContext, languageVersionSettings, symbolTable, typeTranslator, irBuiltIns, irLinker, symbols
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (extension in pluginExtensions) {
|
for (extension in pluginExtensions) {
|
||||||
psi2ir.addPostprocessingStep { module ->
|
psi2ir.addPostprocessingStep { module ->
|
||||||
extension.generate(
|
val old = stubGenerator.unboundSymbolGeneration
|
||||||
module,
|
try {
|
||||||
IrPluginContext(
|
stubGenerator.unboundSymbolGeneration = true
|
||||||
psi2irContext.moduleDescriptor,
|
extension.generate(module, pluginContext)
|
||||||
psi2irContext.bindingContext,
|
} finally {
|
||||||
psi2irContext.languageVersionSettings,
|
stubGenerator.unboundSymbolGeneration = old
|
||||||
psi2irContext.symbolTable,
|
}
|
||||||
psi2irContext.typeTranslator,
|
|
||||||
psi2irContext.irBuiltIns,
|
|
||||||
linker = irLinker
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+58
-58
@@ -8,6 +8,23 @@ public final class ListOfUsers$$serializer : java/lang/Object, kotlinx/serializa
|
|||||||
DUP
|
DUP
|
||||||
INVOKESPECIAL (ListOfUsers$$serializer, <init>, ()V)
|
INVOKESPECIAL (ListOfUsers$$serializer, <init>, ()V)
|
||||||
PUTSTATIC (INSTANCE, LListOfUsers$$serializer;)
|
PUTSTATIC (INSTANCE, LListOfUsers$$serializer;)
|
||||||
|
LABEL (L0)
|
||||||
|
LINENUMBER (12)
|
||||||
|
NEW
|
||||||
|
DUP
|
||||||
|
LDC (ListOfUsers)
|
||||||
|
GETSTATIC (INSTANCE, LListOfUsers$$serializer;)
|
||||||
|
CHECKCAST
|
||||||
|
ICONST_1
|
||||||
|
INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||||
|
ASTORE (0)
|
||||||
|
ALOAD (0)
|
||||||
|
LDC (list)
|
||||||
|
ICONST_0
|
||||||
|
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
||||||
|
ALOAD (0)
|
||||||
|
CHECKCAST
|
||||||
|
PUTSTATIC (descriptor, Lkotlinx/serialization/SerialDescriptor;)
|
||||||
RETURN
|
RETURN
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -17,21 +34,6 @@ public final class ListOfUsers$$serializer : java/lang/Object, kotlinx/serializa
|
|||||||
LABEL (L1)
|
LABEL (L1)
|
||||||
LINENUMBER (12)
|
LINENUMBER (12)
|
||||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||||
NEW
|
|
||||||
DUP
|
|
||||||
LDC (ListOfUsers)
|
|
||||||
ALOAD (0)
|
|
||||||
CHECKCAST
|
|
||||||
ICONST_1
|
|
||||||
INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
|
||||||
ASTORE (1)
|
|
||||||
ALOAD (1)
|
|
||||||
LDC (list)
|
|
||||||
ICONST_0
|
|
||||||
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
|
||||||
ALOAD (1)
|
|
||||||
CHECKCAST
|
|
||||||
PUTSTATIC (descriptor, Lkotlinx/serialization/SerialDescriptor;)
|
|
||||||
RETURN
|
RETURN
|
||||||
LABEL (L2)
|
LABEL (L2)
|
||||||
}
|
}
|
||||||
@@ -203,10 +205,8 @@ public final class ListOfUsers$$serializer : java/lang/Object, kotlinx/serializa
|
|||||||
ALOAD (4)
|
ALOAD (4)
|
||||||
ALOAD (3)
|
ALOAD (3)
|
||||||
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
||||||
LABEL (L2)
|
|
||||||
LINENUMBER (13)
|
|
||||||
RETURN
|
RETURN
|
||||||
LABEL (L3)
|
LABEL (L2)
|
||||||
}
|
}
|
||||||
|
|
||||||
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object value) {
|
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object value) {
|
||||||
@@ -317,6 +317,23 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
|
|||||||
DUP
|
DUP
|
||||||
INVOKESPECIAL (OptionalUser$$serializer, <init>, ()V)
|
INVOKESPECIAL (OptionalUser$$serializer, <init>, ()V)
|
||||||
PUTSTATIC (INSTANCE, LOptionalUser$$serializer;)
|
PUTSTATIC (INSTANCE, LOptionalUser$$serializer;)
|
||||||
|
LABEL (L0)
|
||||||
|
LINENUMBER (9)
|
||||||
|
NEW
|
||||||
|
DUP
|
||||||
|
LDC (OptionalUser)
|
||||||
|
GETSTATIC (INSTANCE, LOptionalUser$$serializer;)
|
||||||
|
CHECKCAST
|
||||||
|
ICONST_1
|
||||||
|
INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||||
|
ASTORE (0)
|
||||||
|
ALOAD (0)
|
||||||
|
LDC (user)
|
||||||
|
ICONST_1
|
||||||
|
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
||||||
|
ALOAD (0)
|
||||||
|
CHECKCAST
|
||||||
|
PUTSTATIC (descriptor, Lkotlinx/serialization/SerialDescriptor;)
|
||||||
RETURN
|
RETURN
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -326,21 +343,6 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
|
|||||||
LABEL (L1)
|
LABEL (L1)
|
||||||
LINENUMBER (9)
|
LINENUMBER (9)
|
||||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||||
NEW
|
|
||||||
DUP
|
|
||||||
LDC (OptionalUser)
|
|
||||||
ALOAD (0)
|
|
||||||
CHECKCAST
|
|
||||||
ICONST_1
|
|
||||||
INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
|
||||||
ASTORE (1)
|
|
||||||
ALOAD (1)
|
|
||||||
LDC (user)
|
|
||||||
ICONST_1
|
|
||||||
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
|
||||||
ALOAD (1)
|
|
||||||
CHECKCAST
|
|
||||||
PUTSTATIC (descriptor, Lkotlinx/serialization/SerialDescriptor;)
|
|
||||||
RETURN
|
RETURN
|
||||||
LABEL (L2)
|
LABEL (L2)
|
||||||
}
|
}
|
||||||
@@ -519,10 +521,8 @@ public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serializ
|
|||||||
ALOAD (4)
|
ALOAD (4)
|
||||||
ALOAD (3)
|
ALOAD (3)
|
||||||
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
||||||
LABEL (L7)
|
|
||||||
LINENUMBER (10)
|
|
||||||
RETURN
|
RETURN
|
||||||
LABEL (L8)
|
LABEL (L7)
|
||||||
}
|
}
|
||||||
|
|
||||||
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object value) {
|
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object value) {
|
||||||
@@ -670,6 +670,27 @@ public final class User$$serializer : java/lang/Object, kotlinx/serialization/in
|
|||||||
DUP
|
DUP
|
||||||
INVOKESPECIAL (User$$serializer, <init>, ()V)
|
INVOKESPECIAL (User$$serializer, <init>, ()V)
|
||||||
PUTSTATIC (INSTANCE, LUser$$serializer;)
|
PUTSTATIC (INSTANCE, LUser$$serializer;)
|
||||||
|
LABEL (L0)
|
||||||
|
LINENUMBER (6)
|
||||||
|
NEW
|
||||||
|
DUP
|
||||||
|
LDC (User)
|
||||||
|
GETSTATIC (INSTANCE, LUser$$serializer;)
|
||||||
|
CHECKCAST
|
||||||
|
ICONST_2
|
||||||
|
INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
||||||
|
ASTORE (0)
|
||||||
|
ALOAD (0)
|
||||||
|
LDC (firstName)
|
||||||
|
ICONST_0
|
||||||
|
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
||||||
|
ALOAD (0)
|
||||||
|
LDC (lastName)
|
||||||
|
ICONST_0
|
||||||
|
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
||||||
|
ALOAD (0)
|
||||||
|
CHECKCAST
|
||||||
|
PUTSTATIC (descriptor, Lkotlinx/serialization/SerialDescriptor;)
|
||||||
RETURN
|
RETURN
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -679,25 +700,6 @@ public final class User$$serializer : java/lang/Object, kotlinx/serialization/in
|
|||||||
LABEL (L1)
|
LABEL (L1)
|
||||||
LINENUMBER (6)
|
LINENUMBER (6)
|
||||||
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
INVOKESPECIAL (java/lang/Object, <init>, ()V)
|
||||||
NEW
|
|
||||||
DUP
|
|
||||||
LDC (User)
|
|
||||||
ALOAD (0)
|
|
||||||
CHECKCAST
|
|
||||||
ICONST_2
|
|
||||||
INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;I)V)
|
|
||||||
ASTORE (1)
|
|
||||||
ALOAD (1)
|
|
||||||
LDC (firstName)
|
|
||||||
ICONST_0
|
|
||||||
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
|
||||||
ALOAD (1)
|
|
||||||
LDC (lastName)
|
|
||||||
ICONST_0
|
|
||||||
INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
|
|
||||||
ALOAD (1)
|
|
||||||
CHECKCAST
|
|
||||||
PUTSTATIC (descriptor, Lkotlinx/serialization/SerialDescriptor;)
|
|
||||||
RETURN
|
RETURN
|
||||||
LABEL (L2)
|
LABEL (L2)
|
||||||
}
|
}
|
||||||
@@ -878,10 +880,8 @@ public final class User$$serializer : java/lang/Object, kotlinx/serialization/in
|
|||||||
ALOAD (4)
|
ALOAD (4)
|
||||||
ALOAD (3)
|
ALOAD (3)
|
||||||
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
|
||||||
LABEL (L2)
|
|
||||||
LINENUMBER (7)
|
|
||||||
RETURN
|
RETURN
|
||||||
LABEL (L3)
|
LABEL (L2)
|
||||||
}
|
}
|
||||||
|
|
||||||
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object value) {
|
public void serialize(kotlinx.serialization.Encoder encoder, java.lang.Object value) {
|
||||||
|
|||||||
@@ -52,7 +52,6 @@ org.jetbrains.kotlin.psi.injection.StringInterpolationInjectionTest.testInterpol
|
|||||||
org.jetbrains.kotlin.nj2k.NewJavaToKotlinConverterSingleFileTestGenerated.Issues.testKt_8170, KT-36459,,
|
org.jetbrains.kotlin.nj2k.NewJavaToKotlinConverterSingleFileTestGenerated.Issues.testKt_8170, KT-36459,,
|
||||||
org.jetbrains.kotlin.shortenRefs.ShortenRefsTestGenerated.testExtensionForObject2, Always red,,
|
org.jetbrains.kotlin.shortenRefs.ShortenRefsTestGenerated.testExtensionForObject2, Always red,,
|
||||||
org.jetbrains.kotlin.util.KotlinVersionsTest.testVersionsAreConsistent, KT-35567,,
|
org.jetbrains.kotlin.util.KotlinVersionsTest.testVersionsAreConsistent, KT-35567,,
|
||||||
org.jetbrains.kotlinx.serialization.SerializationIrBytecodeListingTestGenerated.testBasic, wait until new serialization runtime version will be publicly available,,
|
|
||||||
org.jetbrains.kotlin.jvm.compiler.CompileKotlinAgainstJavaTestGenerated.WithAPT.testClassWithTypeParameter, KT-36448,,
|
org.jetbrains.kotlin.jvm.compiler.CompileKotlinAgainstJavaTestGenerated.WithAPT.testClassWithTypeParameter, KT-36448,,
|
||||||
org.jetbrains.kotlin.jvm.compiler.CompileKotlinAgainstJavaTestGenerated.WithoutAPT.testClassWithTypeParameter, KT-36448,,
|
org.jetbrains.kotlin.jvm.compiler.CompileKotlinAgainstJavaTestGenerated.WithoutAPT.testClassWithTypeParameter, KT-36448,,
|
||||||
org.jetbrains.kotlin.idea.debugger.test.AsyncStackTraceTestGenerated.testAllFilesPresentInAsyncStackTrace, redesign test AsyncStackTraces,,
|
org.jetbrains.kotlin.idea.debugger.test.AsyncStackTraceTestGenerated.testAllFilesPresentInAsyncStackTrace, redesign test AsyncStackTraces,,
|
||||||
|
|||||||
|
Reference in New Issue
Block a user