提交 b66f5c81 编写于 作者: P Pavel Kirpichenkov

Drop type aliases for JS and KLIB string tables

They used to use the same approximation logic anyway
^KT-20996
上级 2f3f75b5
......@@ -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(
......
/*
* 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
/*
* 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
......@@ -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)
......
......@@ -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) },
......
......@@ -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<KlibSourceFile, Int>()
......@@ -26,7 +26,7 @@ class ReverseSourceFileIndexWriteExtension : WriteContextExtension {
}
class KlibModuleFragmentWriter(
stringTable: KlibMetadataStringTable,
stringTable: ApproximatingStringTable,
contextExtensions: List<WriteContextExtension> = 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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册