mirror of
https://github.com/fankes/moshi.git
synced 2025-10-20 00:19:21 +08:00
Support externally-compiled transient property recognition in KSP (#1416)
This commit is contained in:
@@ -39,6 +39,7 @@ import com.squareup.kotlinpoet.KModifier
|
||||
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
|
||||
import com.squareup.kotlinpoet.PropertySpec
|
||||
import com.squareup.kotlinpoet.TypeName
|
||||
import com.squareup.kotlinpoet.jvm.transient
|
||||
import com.squareup.kotlinpoet.ksp.TypeParameterResolver
|
||||
import com.squareup.kotlinpoet.ksp.toClassName
|
||||
import com.squareup.kotlinpoet.ksp.toKModifier
|
||||
@@ -258,8 +259,12 @@ private fun KSPropertyDeclaration.toPropertySpec(
|
||||
.mutable(isMutable)
|
||||
.addModifiers(modifiers.map { KModifier.valueOf(it.name) })
|
||||
.apply {
|
||||
if (isAnnotationPresent(Transient::class)) {
|
||||
addAnnotation(Transient::class)
|
||||
// Check modifiers and annotation since annotation is source-only
|
||||
// Note that this won't work properly until https://github.com/google/ksp/issues/710 is fixed
|
||||
val isTransient = Modifier.JAVA_TRANSIENT in this@toPropertySpec.modifiers ||
|
||||
isAnnotationPresent(Transient::class)
|
||||
if (isTransient) {
|
||||
transient()
|
||||
}
|
||||
addAnnotations(
|
||||
this@toPropertySpec.annotations
|
||||
|
Reference in New Issue
Block a user