From b66f5c81801f0af8981ee52868f3ee7a7fe6ba57 Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Mon, 18 Jan 2021 17:53:31 +0300 Subject: [PATCH] Drop type aliases for JS and KLIB string tables They used to use the same approximation logic anyway ^KT-20996 --- .../metadata/KlibMetadataSerializer.kt | 3 ++- .../metadata/KlibMetadataStringTable.kt | 10 --------- .../serialization/js/JavaScriptStringTable.kt | 21 ------------------- .../js/KotlinJavascriptSerializerExtension.kt | 3 ++- .../metadata/klib/KlibModuleMetadata.kt | 8 +++---- .../kotlinx/metadata/klib/impl/klibWriters.kt | 6 +++--- 6 files changed, 11 insertions(+), 40 deletions(-) delete mode 100644 compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataStringTable.kt delete mode 100644 js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JavaScriptStringTable.kt diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt index 54a5f4ba343..34acc719404 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/metadata/KlibMetadataSerializer.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter +import org.jetbrains.kotlin.serialization.ApproximatingStringTable import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.serialization.StringTableImpl import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor @@ -51,7 +52,7 @@ abstract class KlibMetadataSerializer( val extension = KlibMetadataSerializerExtension( languageVersionSettings, metadataVersion, - KlibMetadataStringTable(), + ApproximatingStringTable(), allowErrorTypes ) return SerializerContext( diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataStringTable.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataStringTable.kt deleted file mode 100644 index 6c4b3005076..00000000000 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataStringTable.kt +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2010-2019 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.backend.common.serialization.metadata - -import org.jetbrains.kotlin.serialization.ApproximatingStringTable - -typealias KlibMetadataStringTable = ApproximatingStringTable diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JavaScriptStringTable.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JavaScriptStringTable.kt deleted file mode 100644 index 3988e110008..00000000000 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/JavaScriptStringTable.kt +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2010-2016 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.kotlin.serialization.js - -import org.jetbrains.kotlin.serialization.ApproximatingStringTable - -typealias JavaScriptStringTable = ApproximatingStringTable diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt index 8b27bec57fc..daefb222c79 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.metadata.serialization.MutableVersionRequirementTabl import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.source.PsiSourceFile +import org.jetbrains.kotlin.serialization.ApproximatingStringTable import org.jetbrains.kotlin.serialization.DescriptorSerializer import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase import org.jetbrains.kotlin.types.FlexibleType @@ -35,7 +36,7 @@ class KotlinJavascriptSerializerExtension( private val languageVersionSettings: LanguageVersionSettings, override val metadataVersion: BinaryVersion ) : KotlinSerializerExtensionBase(JsSerializerProtocol) { - override val stringTable = JavaScriptStringTable() + override val stringTable = ApproximatingStringTable() override fun serializeFlexibleType(flexibleType: FlexibleType, lowerProto: ProtoBuf.Type.Builder, upperProto: ProtoBuf.Type.Builder) { lowerProto.flexibleTypeCapabilitiesId = stringTable.getStringIndex(DynamicTypeDeserializer.id) diff --git a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt index 2dd76f0bb15..b5cd8c4ee3f 100644 --- a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt +++ b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/KlibModuleMetadata.kt @@ -10,11 +10,11 @@ import kotlinx.metadata.KmModuleFragment import kotlinx.metadata.impl.WriteContext import kotlinx.metadata.impl.accept import kotlinx.metadata.klib.impl.* -import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataStringTable import org.jetbrains.kotlin.library.metadata.parseModuleHeader import org.jetbrains.kotlin.library.metadata.parsePackageFragment import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl +import org.jetbrains.kotlin.serialization.ApproximatingStringTable /** * Allows to modify the way fragments of the single package are read by [KlibModuleMetadata.read]. @@ -120,12 +120,12 @@ class KlibModuleMetadata( ) val groupedProtos = groupedFragments.mapValues { (_, fragments) -> fragments.map { - val c = WriteContext(KlibMetadataStringTable(), listOf(reverseIndex)) - KlibModuleFragmentWriter(c.strings as KlibMetadataStringTable, c.contextExtensions).also(it::accept).write() + val c = WriteContext(ApproximatingStringTable(), listOf(reverseIndex)) + KlibModuleFragmentWriter(c.strings as ApproximatingStringTable, c.contextExtensions).also(it::accept).write() } } // This context and string table is only required for module-level annotations. - val c = WriteContext(KlibMetadataStringTable(), listOf(reverseIndex)) + val c = WriteContext(ApproximatingStringTable(), listOf(reverseIndex)) return SerializedKlibMetadata( header.writeHeader(c).build().toByteArray(), groupedProtos.map { it.value.map(ProtoBuf.PackageFragment::toByteArray) }, diff --git a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt index 813fe46bb3a..289e6376446 100644 --- a/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt +++ b/libraries/kotlinx-metadata/klib/src/kotlinx/metadata/klib/impl/klibWriters.kt @@ -7,9 +7,9 @@ package kotlinx.metadata.klib.impl import kotlinx.metadata.impl.* import kotlinx.metadata.klib.KlibSourceFile -import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataStringTable import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf import org.jetbrains.kotlin.metadata.ProtoBuf +import org.jetbrains.kotlin.serialization.ApproximatingStringTable class ReverseSourceFileIndexWriteExtension : WriteContextExtension { private val filesReverseIndex = mutableMapOf() @@ -26,7 +26,7 @@ class ReverseSourceFileIndexWriteExtension : WriteContextExtension { } class KlibModuleFragmentWriter( - stringTable: KlibMetadataStringTable, + stringTable: ApproximatingStringTable, contextExtensions: List = emptyList() ) : ModuleFragmentWriter(stringTable, contextExtensions) { @@ -36,7 +36,7 @@ class KlibModuleFragmentWriter( override fun visitEnd() { // TODO: This should be moved to ModuleFragmentWriter. - val (strings, qualifiedNames) = (c.strings as KlibMetadataStringTable).buildProto() + val (strings, qualifiedNames) = (c.strings as ApproximatingStringTable).buildProto() t.strings = strings t.qualifiedNames = qualifiedNames