diff --git a/compiler/src/main/kotlin/se/ansman/kotshi/kapt/KotshiProcessor.kt b/compiler/src/main/kotlin/se/ansman/kotshi/kapt/KotshiProcessor.kt index cfa7fb7..39297eb 100644 --- a/compiler/src/main/kotlin/se/ansman/kotshi/kapt/KotshiProcessor.kt +++ b/compiler/src/main/kotlin/se/ansman/kotshi/kapt/KotshiProcessor.kt @@ -74,7 +74,7 @@ class KotshiProcessor : AbstractProcessor() { ?.let { GeneratedAnnotation(it, KotshiProcessor::class.asClassName()) } elements = processingEnv.elementUtils types = processingEnv.typeUtils - metadataAccessor = MetadataAccessor(ElementsClassInspector.create(elements, processingEnv.typeUtils)) + metadataAccessor = MetadataAccessor(ElementsClassInspector.create(lenient = true, elements, processingEnv.typeUtils)) steps = ImmutableList.copyOf(initSteps()) } diff --git a/compiler/src/main/kotlin/se/ansman/kotshi/kapt/MetadataAccessor.kt b/compiler/src/main/kotlin/se/ansman/kotshi/kapt/MetadataAccessor.kt index 446b133..4d63048 100644 --- a/compiler/src/main/kotlin/se/ansman/kotshi/kapt/MetadataAccessor.kt +++ b/compiler/src/main/kotlin/se/ansman/kotshi/kapt/MetadataAccessor.kt @@ -6,10 +6,10 @@ import com.squareup.kotlinpoet.TypeSpec import com.squareup.kotlinpoet.asClassName import com.squareup.kotlinpoet.metadata.specs.ClassInspector import com.squareup.kotlinpoet.metadata.specs.toTypeSpec -import com.squareup.kotlinpoet.metadata.toKmClass import com.squareup.kotlinpoet.tag import kotlinx.metadata.KmClass import kotlinx.metadata.isLocalClassName +import kotlinx.metadata.jvm.KotlinClassMetadata import se.ansman.kotshi.Errors.javaClassNotSupported import javax.lang.model.element.Element import javax.lang.model.element.TypeElement @@ -31,7 +31,9 @@ class MetadataAccessor(private val classInspector: ClassInspector) { fun getLanguageVersion(type: Element): KotlinVersion = getMetadata(type).languageVersion - fun getKmClass(metadata: Metadata): KmClass = kmClassPerMetadata.getOrPut(metadata) { metadata.toKmClass() } + fun getKmClass(metadata: Metadata): KmClass = kmClassPerMetadata.getOrPut(metadata) { + (KotlinClassMetadata.readLenient(metadata) as KotlinClassMetadata.Class).kmClass + } fun getKmClass(type: Element): KmClass = getKmClass(getMetadata(type)) fun getKmClassOrNull(type: Element): KmClass? = getMetadataOrNull(type)?.let(::getKmClass) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e96194d..ede847d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] kotlin = "2.0.0" auto-service = "1.1.1" -kotlinpoet = "1.16.0" +kotlinpoet = "1.17.0" compileTesting = "0.4.1" incap = "1.0.0" ksp = "1.9.24-1.0.20"