Kotlin / kotlinx.serialization

Kotlin multiplatform / multi-format serialization
Apache License 2.0
5.25k stars 616 forks source link

ERROR: org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationResolveExtension caused LinkageError #2740

Open Omico opened 2 weeks ago

Omico commented 2 weeks ago

Describe the bug

This works appropriately before Kotlin 2.0.

ERROR: org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationResolveExtension caused LinkageError
java.lang.NoSuchFieldError: Class org.jetbrains.kotlin.name.ClassId does not have member field 'org.jetbrains.kotlin.name.ClassId$Companion Companion'
    at org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationAnnotations.<clinit>(NamingConventions.kt:48)
    at org.jetbrains.kotlinx.serialization.compiler.resolve.KSerializationUtilKt.getHasSerializableAnnotation(KSerializationUtil.kt:185)
    at org.jetbrains.kotlinx.serialization.compiler.resolve.KSerializationUtilKt.getHasSerializableAnnotation(KSerializationUtil.kt:182)
    at org.jetbrains.kotlinx.serialization.compiler.resolve.KSerializationUtilKt.getHasSerializableOrMetaAnnotation(KSerializationUtil.kt:179)
    at org.jetbrains.kotlinx.serialization.compiler.resolve.KSerializationUtilKt.getShouldHaveGeneratedMethodsInCompanion(KSerializationUtil.kt:118)
    at org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationResolveExtension.getSyntheticCompanionObjectNameIfNeeded(SerializationResolveExtension.kt:84)
    at org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension$Companion$getInstance$1.getSyntheticCompanionObjectNameIfNeeded(SyntheticResolveExtension.kt:82)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor.createSyntheticCompanionObjectDescriptor(LazyClassDescriptor.java:553)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor.computeCompanionObjectDescriptor(LazyClassDescriptor.java:534)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor.lambda$new$3(LazyClassDescriptor.java:218)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:408)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor.getCompanionObjectDescriptor(LazyClassDescriptor.java:503)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassDescriptor.resolveMemberHeaders(LazyClassDescriptor.java:743)
    at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.resolveAllHeadersInClasses(LazyTopDownAnalyzer.kt:241)
    at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations(LazyTopDownAnalyzer.kt:214)
    at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations$default(LazyTopDownAnalyzer.kt:58)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:119)
    at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:77)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt$analyze$1.invoke(ScriptJvmCompilerImpls.kt:266)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt$analyze$1.invoke(ScriptJvmCompilerImpls.kt:264)
    at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:115)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.analyze(ScriptJvmCompilerImpls.kt:264)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.doCompile(ScriptJvmCompilerImpls.kt:226)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.compileImpl(ScriptJvmCompilerImpls.kt:186)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.access$compileImpl(ScriptJvmCompilerImpls.kt:1)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerFromEnvironment$compile$1$1.invoke(ScriptJvmCompilerImpls.kt:95)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerFromEnvironment$compile$1$1.invoke(ScriptJvmCompilerImpls.kt:83)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.withScriptCompilationCache(ScriptJvmCompilerImpls.kt:116)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerImplsKt.access$withScriptCompilationCache(ScriptJvmCompilerImpls.kt:1)
    at org.jetbrains.kotlin.scripting.compiler.plugin.impl.ScriptJvmCompilerFromEnvironment.compile(ScriptJvmCompilerImpls.kt:83)
    at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension$doEval$1.invokeSuspend(AbstractScriptEvaluationExtension.kt:136)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
    at kotlin.script.experimental.impl.RunSuspendKt.internalScriptingRunSuspend(runSuspend.kt:19)
    at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension.doEval(AbstractScriptEvaluationExtension.kt:135)
    at org.jetbrains.kotlin.scripting.compiler.plugin.AbstractScriptEvaluationExtension.eval(AbstractScriptEvaluationExtension.kt:122)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:111)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:79)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:43)
    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:180)
    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit$default(CLITool.kt:175)
    at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:167)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler$Companion.main(K2JVMCompiler.kt:250)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.main(K2JVMCompiler.kt)
error: org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationResolveExtension caused LinkageError (profiles.main.kts): java.lang.AssertionError: org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationResolveExtension caused LinkageError

To Reproduce https://github.com/Omico/OhMyPowerShellProfile/blob/main/profiles.example.main.kts Run generateProfiles configuration in IDEA.

Expected behavior

Environment

sandwwraith commented 2 weeks ago

This exception indicates mismatch between Kotlin compiler version and kotlinx-serialization compiler plugin version. Please check that your kotlin-serialization-compiler-plugin JAR is also of 2.0 version

sandwwraith commented 2 weeks ago

Also, please file plugin- and general Kotlin-related tickets to YouTrack

Omico commented 1 week ago

Sorry for the delay, move to https://youtrack.jetbrains.com/issue/KT-69820.