Cleanup: Use concrete subclass instead of BinaryVersion when possible

Review: https://jetbrains.team/p/kt/reviews/8401

BinaryVersion is a problematic class, because it doesn't represent any
logical entity in the codebase, it's just a way to reuse common logic
for Kotlin versions. But unfortunately, BinaryVersion is used in a lot
of API definitions, which makes code hard to read because it's not
obvious which subclasses are supposed to be passed in the particular
API.
This commit is contained in:
Nikita Bobko
2023-01-03 16:20:58 +01:00
parent ca60a4fcf9
commit 73149fdf0b
4 changed files with 8 additions and 6 deletions
@@ -161,7 +161,7 @@ object KotlinJavascriptSerializationUtil {
fqName: FqName,
languageVersionSettings: LanguageVersionSettings,
project: Project,
metadataVersion: BinaryVersion
metadataVersion: JsMetadataVersion
): ProtoBuf.PackageFragment {
val builder = ProtoBuf.PackageFragment.newBuilder()
@@ -16,11 +16,9 @@
package org.jetbrains.kotlin.serialization.js
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.config.LanguageVersionSettings
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
import org.jetbrains.kotlin.metadata.js.JsProtoBuf
import org.jetbrains.kotlin.metadata.serialization.MutableVersionRequirementTable
import org.jetbrains.kotlin.psi.KtFile
@@ -31,11 +29,12 @@ import org.jetbrains.kotlin.serialization.DescriptorSerializer
import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase
import org.jetbrains.kotlin.serialization.deserialization.DYNAMIC_TYPE_DESERIALIZER_ID
import org.jetbrains.kotlin.types.FlexibleType
import org.jetbrains.kotlin.utils.JsMetadataVersion
class KotlinJavascriptSerializerExtension(
private val fileRegistry: KotlinFileRegistry,
private val languageVersionSettings: LanguageVersionSettings,
override val metadataVersion: BinaryVersion
override val metadataVersion: JsMetadataVersion
) : KotlinSerializerExtensionBase(JsSerializerProtocol) {
override val stringTable = ApproximatingStringTable()