fixup! [SSoT] Remove serialization boilerplate by using contextual serializers
diff --git a/compiler/arguments/src/org/jetbrains/kotlin/arguments/dsl/types/AllKotlinArgumentTypes.kt b/compiler/arguments/src/org/jetbrains/kotlin/arguments/dsl/types/AllKotlinArgumentTypes.kt
index 66d5495..8312c38 100644
--- a/compiler/arguments/src/org/jetbrains/kotlin/arguments/dsl/types/AllKotlinArgumentTypes.kt
+++ b/compiler/arguments/src/org/jetbrains/kotlin/arguments/dsl/types/AllKotlinArgumentTypes.kt
@@ -7,13 +7,7 @@
 
 import kotlinx.serialization.Contextual
 import kotlinx.serialization.Serializable
-import kotlinx.serialization.modules.SerializersModule
-import kotlinx.serialization.modules.SerializersModuleBuilder
-import kotlinx.serialization.modules.contextual
 import org.jetbrains.kotlin.arguments.dsl.base.ExperimentalArgumentApi
-import org.jetbrains.kotlin.arguments.dsl.base.WithKotlinReleaseVersionsMetadata
-import org.jetbrains.kotlin.arguments.serialization.json.base.allNamedTypeSerializerWithVersions
-import kotlin.reflect.KClass
 
 /**
  * Class containing all non-primitive compiler argument types which are serialized in more detailed form.
@@ -22,116 +16,34 @@
 @Suppress("unused")
 @Serializable
 class AllKotlinArgumentTypes {
-    @Serializable
-    val kotlinVersions: TypeWithEntries<@Contextual KotlinVersion> = KotlinVersionType::class with KotlinVersion.entries.toSet()
-
-    @Serializable
-    val jvmTargets: TypeWithEntries<@Contextual JvmTarget> =
-        KotlinJvmTargetType::class with JvmTarget.entries.toSet()
-
-    @Serializable
-    val explicitApiModes: TypeWithEntries<@Contextual ExplicitApiMode> =
-        KotlinExplicitApiModeType::class with ExplicitApiMode.entries.toSet()
-
-    @Serializable
-    val returnValueCheckerMode: TypeWithEntries<@Contextual ReturnValueCheckerMode> =
-        ReturnValueCheckerModeType::class with ReturnValueCheckerMode.entries.toSet()
-
-    @Serializable
-    val klibIrInlinerMode: TypeWithEntries<@Contextual KlibIrInlinerMode> =
-        KlibIrInlinerModeType::class with KlibIrInlinerMode.entries.toSet()
-
-    @Serializable
-    val jvmDefaultMode: TypeWithEntries<@Contextual JvmDefaultMode> =
-        JvmDefaultModeType::class with JvmDefaultMode.entries.toSet()
-
-    @Serializable
-    val abiStabilityMode: TypeWithEntries<@Contextual AbiStabilityMode> =
-        AbiStabilityModeType::class with AbiStabilityMode.entries.toSet()
-
-    @Serializable
-    val assertionsMode: TypeWithEntries<@Contextual AssertionsMode> =
-        AssertionsModeType::class with AssertionsMode.entries.toSet()
-
-    @Serializable
-    val jspecifyAnnotationsMode: TypeWithEntries<@Contextual JspecifyAnnotationsMode> =
-        JspecifyAnnotationsModeType::class with JspecifyAnnotationsMode.entries.toSet()
-
-    @Serializable
-    val lambdasMode: TypeWithEntries<@Contextual LambdasMode> =
-        LambdasModeType::class with LambdasMode.entries.toSet()
-
-    @Serializable
-    val samConversionsMode: TypeWithEntries<@Contextual SamConversionsMode> =
-        SamConversionsModeType::class with SamConversionsMode.entries.toSet()
-
-    @Serializable
-    val stringConcatMode: TypeWithEntries<@Contextual StringConcatMode> =
-        StringConcatModeType::class with StringConcatMode.entries.toSet()
-
-    @Serializable
-    val compatqualAnnotationsMode: TypeWithEntries<@Contextual CompatqualAnnotationsMode> =
-        CompatqualAnnotationsModeType::class with CompatqualAnnotationsMode.entries.toSet()
-
-    @Serializable
-    val whenExpressionsMode: TypeWithEntries<@Contextual WhenExpressionsMode> =
-        WhenExpressionsModeType::class with WhenExpressionsMode.entries.toSet()
-
-    @Serializable
-    val jdkRelease: TypeWithEntries<@Contextual JdkRelease> =
-        JdkReleaseType::class with JdkRelease.entries.toSet()
-
-    @Serializable
-    val annotationDefaultTarget: TypeWithEntries<@Contextual AnnotationDefaultTargetMode> =
-        AnnotationDefaultTargetModeType::class with AnnotationDefaultTargetMode.entries.toSet()
-
-    @Serializable
-    val nameBasedDestructuring: TypeWithEntries<@Contextual NameBasedDestructuringMode> =
-        NameBasedDestructuringModeType::class with NameBasedDestructuringMode.entries.toSet()
-
-    @Serializable
-    val verifyIrMode: TypeWithEntries<@Contextual VerifyIrMode> =
-        VerifyIrModeType::class with VerifyIrMode.entries.toSet()
-
-    @Serializable
-    val partialLinkageMode: TypeWithEntries<@Contextual PartialLinkageMode> =
-        PartialLinkageModeType::class with PartialLinkageMode.entries.toSet()
-
-    @Serializable
-    val partialLinkageLogLevel: TypeWithEntries<@Contextual PartialLinkageLogLevel> =
-        PartialLinkageLogLevelType::class with PartialLinkageLogLevel.entries.toSet()
-
-    @Serializable
-    val duplicatedUniqueNameStrategy: TypeWithEntries<@Contextual DuplicatedUniqueNameStrategy> =
-        DuplicatedUniqueNameStrategyType::class with DuplicatedUniqueNameStrategy.entries.toSet()
-
-    @Serializable
-    val jsEcmaVersion: TypeWithEntries<@Contextual JsEcmaVersion> =
-        JsEcmaVersionType::class with JsEcmaVersion.entries.toSet()
-
-    @Serializable
-    val jsModuleKind: TypeWithEntries<@Contextual JsModuleKind> =
-        JsModuleKindType::class with JsModuleKind.entries.toSet()
-
-    @Serializable
-    val jsIrDiagnosticMode: TypeWithEntries<@Contextual JsIrDiagnosticMode> =
-        JsIrDiagnosticModeType::class with JsIrDiagnosticMode.entries.toSet()
-
-    @Serializable
-    val jsMainCallMode: TypeWithEntries<@Contextual JsMainCallMode> =
-        JsMainCallModeType::class with JsMainCallMode.entries.toSet()
-
-    @Serializable
-    val sourceMapEmbedSources: TypeWithEntries<@Contextual SourceMapEmbedSources> =
-        SourceMapEmbedSourcesType::class with SourceMapEmbedSources.entries.toSet()
-
-    @Serializable
-    val sourceMapNamesPolicy: TypeWithEntries<@Contextual SourceMapNamesPolicy> =
-        SourceMapNamesPolicyType::class with SourceMapNamesPolicy.entries.toSet()
-
-    @Serializable
-    val wasmTarget: TypeWithEntries<@Contextual WasmTarget> =
-        WasmTargetType::class with WasmTarget.entries.toSet()
+    val kotlinVersions = TypeWithEntries<KotlinVersionType, KotlinVersion>()
+    val jvmTargets = TypeWithEntries<KotlinJvmTargetType, JvmTarget>()
+    val explicitApiModes = TypeWithEntries<KotlinExplicitApiModeType, ExplicitApiMode>()
+    val returnValueCheckerMode = TypeWithEntries<ReturnValueCheckerModeType, ReturnValueCheckerMode>()
+    val klibIrInlinerMode = TypeWithEntries<KlibIrInlinerModeType, KlibIrInlinerMode>()
+    val jvmDefaultMode = TypeWithEntries<JvmDefaultModeType, JvmDefaultMode>()
+    val abiStabilityMode = TypeWithEntries<AbiStabilityModeType, AbiStabilityMode>()
+    val assertionsMode = TypeWithEntries<AssertionsModeType, AssertionsMode>()
+    val jspecifyAnnotationsMode = TypeWithEntries<JspecifyAnnotationsModeType, JspecifyAnnotationsMode>()
+    val lambdasMode = TypeWithEntries<LambdasModeType, LambdasMode>()
+    val samConversionsMode = TypeWithEntries<SamConversionsModeType, SamConversionsMode>()
+    val stringConcatMode = TypeWithEntries<StringConcatModeType, StringConcatMode>()
+    val compatqualAnnotationsMode = TypeWithEntries<CompatqualAnnotationsModeType, CompatqualAnnotationsMode>()
+    val whenExpressionsMode = TypeWithEntries<WhenExpressionsModeType, WhenExpressionsMode>()
+    val jdkRelease = TypeWithEntries<JdkReleaseType, JdkRelease>()
+    val annotationDefaultTarget = TypeWithEntries<AnnotationDefaultTargetModeType, AnnotationDefaultTargetMode>()
+    val nameBasedDestructuring = TypeWithEntries<NameBasedDestructuringModeType, NameBasedDestructuringMode>()
+    val verifyIrMode = TypeWithEntries<VerifyIrModeType, VerifyIrMode>()
+    val partialLinkageMode = TypeWithEntries<PartialLinkageModeType, PartialLinkageMode>()
+    val partialLinkageLogLevel = TypeWithEntries<PartialLinkageLogLevelType, PartialLinkageLogLevel>()
+    val duplicatedUniqueNameStrategy = TypeWithEntries<DuplicatedUniqueNameStrategyType, DuplicatedUniqueNameStrategy>()
+    val jsEcmaVersion = TypeWithEntries<JsEcmaVersionType, JsEcmaVersion>()
+    val jsModuleKind = TypeWithEntries<JsModuleKindType, JsModuleKind>()
+    val jsIrDiagnosticMode = TypeWithEntries<JsIrDiagnosticModeType, JsIrDiagnosticMode>()
+    val jsMainCallMode = TypeWithEntries<JsMainCallModeType, JsMainCallMode>()
+    val sourceMapEmbedSources = TypeWithEntries<SourceMapEmbedSourcesType, SourceMapEmbedSources>()
+    val sourceMapNamesPolicy = TypeWithEntries<SourceMapNamesPolicyType, SourceMapNamesPolicy>()
+    val wasmTarget = TypeWithEntries<WasmTargetType, WasmTarget>()
 
 }
 
@@ -141,40 +53,5 @@
     val values: Set<T>,
 )
 
-private infix fun <T> KClass<out EnumType<T>>.with(entries: Set<T>) where T : Enum<T>, T : WithStringRepresentation =
-    TypeWithEntries(this.java.name, entries)
-
-internal val allKotlinTypeSerializersModule = SerializersModule {
-    contextualSerializerWithVersions<KotlinVersion>()
-    contextualSerializerWithVersions<JvmTarget>()
-    contextualSerializerWithVersions<ExplicitApiMode>()
-    contextualSerializerWithVersions<ReturnValueCheckerMode>()
-    contextualSerializerWithVersions<KlibIrInlinerMode>()
-    contextualSerializerWithVersions<JvmDefaultMode>()
-    contextualSerializerWithVersions<AbiStabilityMode>()
-    contextualSerializerWithVersions<AssertionsMode>()
-    contextualSerializerWithVersions<JspecifyAnnotationsMode>()
-    contextualSerializerWithVersions<LambdasMode>()
-    contextualSerializerWithVersions<SamConversionsMode>()
-    contextualSerializerWithVersions<StringConcatMode>()
-    contextualSerializerWithVersions<CompatqualAnnotationsMode>()
-    contextualSerializerWithVersions<WhenExpressionsMode>()
-    contextualSerializerWithVersions<JdkRelease>()
-    contextualSerializerWithVersions<AnnotationDefaultTargetMode>()
-    contextualSerializerWithVersions<NameBasedDestructuringMode>()
-    contextualSerializerWithVersions<VerifyIrMode>()
-    contextualSerializerWithVersions<PartialLinkageMode>()
-    contextualSerializerWithVersions<PartialLinkageLogLevel>()
-    contextualSerializerWithVersions<DuplicatedUniqueNameStrategy>()
-    contextualSerializerWithVersions<JsEcmaVersion>()
-    contextualSerializerWithVersions<JsModuleKind>()
-    contextualSerializerWithVersions<JsIrDiagnosticMode>()
-    contextualSerializerWithVersions<JsMainCallMode>()
-    contextualSerializerWithVersions<SourceMapEmbedSources>()
-    contextualSerializerWithVersions<SourceMapNamesPolicy>()
-    contextualSerializerWithVersions<WasmTarget>()
-}
-
-private inline fun <reified T> SerializersModuleBuilder.contextualSerializerWithVersions() where T : WithKotlinReleaseVersionsMetadata, T : Enum<T>, T : WithStringRepresentation {
-    contextual(allNamedTypeSerializerWithVersions<T>())
-}
+private inline fun <reified S, reified T> TypeWithEntries() where T : Enum<T>, T : WithStringRepresentation =
+    TypeWithEntries<@Contextual T>(S::class.java.name, T::class.java.enumConstants.toSet())
diff --git a/compiler/arguments/src/org/jetbrains/kotlin/arguments/dsl/types/AllKotlinTypeSerializersModule.kt b/compiler/arguments/src/org/jetbrains/kotlin/arguments/dsl/types/AllKotlinTypeSerializersModule.kt
new file mode 100644
index 0000000..0817167
--- /dev/null
+++ b/compiler/arguments/src/org/jetbrains/kotlin/arguments/dsl/types/AllKotlinTypeSerializersModule.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2010-2026 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.arguments.dsl.types
+
+import kotlinx.serialization.modules.SerializersModule
+import kotlinx.serialization.modules.SerializersModuleBuilder
+import kotlinx.serialization.modules.contextual
+import org.jetbrains.kotlin.arguments.dsl.base.WithKotlinReleaseVersionsMetadata
+import org.jetbrains.kotlin.arguments.serialization.json.base.allNamedTypeSerializerWithVersions
+
+internal val allKotlinTypeSerializersModule = SerializersModule {
+    contextualSerializerWithVersions<KotlinVersion>()
+    contextualSerializerWithVersions<JvmTarget>()
+    contextualSerializerWithVersions<ExplicitApiMode>()
+    contextualSerializerWithVersions<ReturnValueCheckerMode>()
+    contextualSerializerWithVersions<KlibIrInlinerMode>()
+    contextualSerializerWithVersions<JvmDefaultMode>()
+    contextualSerializerWithVersions<AbiStabilityMode>()
+    contextualSerializerWithVersions<AssertionsMode>()
+    contextualSerializerWithVersions<JspecifyAnnotationsMode>()
+    contextualSerializerWithVersions<LambdasMode>()
+    contextualSerializerWithVersions<SamConversionsMode>()
+    contextualSerializerWithVersions<StringConcatMode>()
+    contextualSerializerWithVersions<CompatqualAnnotationsMode>()
+    contextualSerializerWithVersions<WhenExpressionsMode>()
+    contextualSerializerWithVersions<JdkRelease>()
+    contextualSerializerWithVersions<AnnotationDefaultTargetMode>()
+    contextualSerializerWithVersions<NameBasedDestructuringMode>()
+    contextualSerializerWithVersions<VerifyIrMode>()
+    contextualSerializerWithVersions<PartialLinkageMode>()
+    contextualSerializerWithVersions<PartialLinkageLogLevel>()
+    contextualSerializerWithVersions<DuplicatedUniqueNameStrategy>()
+    contextualSerializerWithVersions<JsEcmaVersion>()
+    contextualSerializerWithVersions<JsModuleKind>()
+    contextualSerializerWithVersions<JsIrDiagnosticMode>()
+    contextualSerializerWithVersions<JsMainCallMode>()
+    contextualSerializerWithVersions<SourceMapEmbedSources>()
+    contextualSerializerWithVersions<SourceMapNamesPolicy>()
+    contextualSerializerWithVersions<WasmTarget>()
+}
+
+private inline fun <reified T> SerializersModuleBuilder.contextualSerializerWithVersions() where T : WithKotlinReleaseVersionsMetadata, T : Enum<T>, T : WithStringRepresentation {
+    contextual(allNamedTypeSerializerWithVersions<T>())
+}