// ISSUE: KT-64312 // WITH_STDLIB // MODULE: lib import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable abstract class Base { @SerialName("properties") protected var propertiesInternal: String? = null val properties: String // should not be serialized because it does not have a backing field get() = propertiesInternal?.reversed().orEmpty() } // MODULE: main(lib) import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable class Derived: Base() { fun initialize() { propertiesInternal = "KO" } } fun box(): String { val expected = Derived().also { it.initialize() } val json = Json.encodeToString(Derived.serializer(), expected) if (json != """{"properties":"KO"}""") return "Fail: $json" val actual = Json.decodeFromString(Derived.serializer(), json) if (expected.properties != actual.properties) return "Fail: $actual" return actual.properties }