tschuchortdev / kotlin-compile-testing

A library for testing Kotlin and Java annotation processors, compiler plugins and code generation
Mozilla Public License 2.0
642 stars 61 forks source link

Compile failing with using serialization plugin for kotlin #406

Closed someshkoli closed 1 week ago

someshkoli commented 1 week ago

Getting the following error when trying to compile code which contains Serializable annotation, attaching sample code, error and runtime info below. Any ideas what could be causing this ?

Sample Code to compile

package example.tasks

import kotlinx.serialization.Serializable
import headout.oss.ergo.annotations.Task

object ExampleTask {
    fun noArgWithSerializableResult(): Result = Result(10)
}

@Serializable
data class Result(val number: Int)
KotlinCompilation().apply {
        sources = listOf(SourceFile.kotlin(EXAMPLE_KOTLIN_FILE, source))
        annotationProcessors = listOf(TaskProcessor())
        inheritClassPath = true
        compilerPluginRegistrars = listOf(SerializationComponentRegistrar())
        messageOutputStream = System.out
    }.compile()
e: java.lang.NoSuchMethodError: 'com.intellij.psi.PsiElement org.jetbrains.kotlin.resolve.lazy.data.KtClassLikeInfo.getScopeAnchor()'
    at org.jetbrains.kotlinx.serialization.compiler.resolve.KSerializerDescriptorResolver.addSerializerImplClass(KSerializerDescriptorResolver.kt:72)
    at org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationResolveExtension.generateSyntheticClasses(SerializationResolveExtension.kt:79)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.getNonDeclaredClasses(LazyClassMemberScope.kt:287)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope.doGetClasses(AbstractLazyMemberScope.kt:70)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope.access$doGetClasses(AbstractLazyMemberScope.kt:38)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope$classDescriptors$1.invoke(AbstractLazyMemberScope.kt:49)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope$classDescriptors$1.invoke(AbstractLazyMemberScope.kt:49)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:681)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.AbstractLazyMemberScope.getContributedClassifier(AbstractLazyMemberScope.kt:77)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.addSyntheticNestedClasses(LazyClassMemberScope.kt:391)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.computeExtraDescriptors(LazyClassMemberScope.kt:129)
    at org.jetbrains.kotlin.resolve.lazy.descriptors.LazyClassMemberScope.doDescriptors(LazyClassMemberScope.kt:72)
someshkoli commented 1 week ago

Ignore, was banging my head around it for two days, only to find solution right after raising issue.

Ps: missing kotlinx-serialization-compiler-plugin-embeddable dependency