Skip to content

Commit 80c30fd

Browse files
committed
Fixed to ignore setters that are not Kotlin property
1 parent 158f783 commit 80c30fd

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/main/kotlin/com/fasterxml/jackson/module/kotlin/KotlinNamesAnnotationIntrospector.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.introspect.AnnotatedParameter
1111
import com.fasterxml.jackson.databind.introspect.NopAnnotationIntrospector
1212
import kotlinx.metadata.jvm.fieldSignature
1313
import kotlinx.metadata.jvm.getterSignature
14+
import kotlinx.metadata.jvm.setterSignature
1415
import java.lang.reflect.Constructor
1516
import java.lang.reflect.Method
1617
import kotlin.reflect.KClass
@@ -59,6 +60,14 @@ internal class KotlinNamesAnnotationIntrospector(val module: KotlinModule, val c
5960
else -> null
6061
}
6162

63+
override fun hasIgnoreMarker(m: AnnotatedMember): Boolean = (m as? AnnotatedMethod)?.member
64+
?.takeIf { it.parameters.size == 1 /* && it.returnType == Void::class.java */ }
65+
?.let { it.declaringClass.toKmClass() }
66+
?.let { kmClass ->
67+
val methodSignature = m.annotated.toSignature()
68+
kmClass.properties.none { it.setterSignature == methodSignature }
69+
} ?: false
70+
6271
@Suppress("UNCHECKED_CAST")
6372
private fun hasCreatorAnnotation(member: AnnotatedConstructor): Boolean {
6473
// don't add a JsonCreator to any constructor if one is declared already

0 commit comments

Comments
 (0)