diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/Json.kt b/formats/json/commonMain/src/kotlinx/serialization/json/Json.kt index 2d7d157c43..4329eafdaf 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/Json.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/Json.kt @@ -502,6 +502,7 @@ public class JsonBuilder internal constructor(json: Json) { * Other modes are generally intended to produce JSON for consumption by third-party libraries, * therefore, this setting does not affect the deserialization process. */ + @ExperimentalSerializationApi public var classDiscriminatorMode: ClassDiscriminatorMode = json.configuration.classDiscriminatorMode /** diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/JsonConfiguration.kt b/formats/json/commonMain/src/kotlinx/serialization/json/JsonConfiguration.kt index dc69644e4b..aceaa86bd8 100644 --- a/formats/json/commonMain/src/kotlinx/serialization/json/JsonConfiguration.kt +++ b/formats/json/commonMain/src/kotlinx/serialization/json/JsonConfiguration.kt @@ -39,6 +39,11 @@ public class JsonConfiguration @OptIn(ExperimentalSerializationApi::class) inter @ExperimentalSerializationApi public val allowComments: Boolean = false, @ExperimentalSerializationApi + @set:Deprecated( + "JsonConfiguration is not meant to be mutable, and will be made read-only in a future release. " + + "The `Json(from = ...) {}` copy builder should be used instead.", + level = DeprecationLevel.ERROR + ) public var classDiscriminatorMode: ClassDiscriminatorMode = ClassDiscriminatorMode.POLYMORPHIC, ) {