diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsPackageFragmentImpl.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsPackageFragmentImpl.kt index 021747c0dbe..20157c2821e 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsPackageFragmentImpl.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/builtins/BuiltInsPackageFragmentImpl.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.metadata.ProtoBuf import org.jetbrains.kotlin.metadata.builtins.BuiltInsBinaryVersion -import org.jetbrains.kotlin.metadata.builtins.readBuiltinsPackageFragment import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.descriptorUtil.module import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragmentImpl @@ -34,15 +33,21 @@ class BuiltInsPackageFragmentImpl private constructor( inputStream: InputStream, isFallback: Boolean ): BuiltInsPackageFragmentImpl { - val (proto, version) = inputStream.readBuiltinsPackageFragment() + lateinit var version: BuiltInsBinaryVersion - if (proto == null) { - // TODO: report a proper diagnostic - throw UnsupportedOperationException( - "Kotlin built-in definition format version is not supported: " + - "expected ${BuiltInsBinaryVersion.INSTANCE}, actual $version. " + - "Please update Kotlin" - ) + val proto = inputStream.use { stream -> + version = BuiltInsBinaryVersion.readFrom(stream) + + if (!version.isCompatible()) { + // TODO: report a proper diagnostic + throw UnsupportedOperationException( + "Kotlin built-in definition format version is not supported: " + + "expected ${BuiltInsBinaryVersion.INSTANCE}, actual $version. " + + "Please update Kotlin" + ) + } + + ProtoBuf.PackageFragment.parseFrom(stream, BuiltInSerializerProtocol.extensionRegistry) } return BuiltInsPackageFragmentImpl(fqName, storageManager, module, proto, version, isFallback) diff --git a/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/readPackageFragment.kt b/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/readPackageFragment.kt deleted file mode 100644 index 4a43d024fff..00000000000 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/readPackageFragment.kt +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2010-2020 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.metadata.builtins - -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite -import java.io.InputStream - -fun InputStream.readBuiltinsPackageFragment(): Pair = - use { stream -> - val version = BuiltInsBinaryVersion.readFrom(stream) - val proto = - if (version.isCompatible()) ProtoBuf.PackageFragment.parseFrom( - stream, - ExtensionRegistryLite.newInstance().apply(BuiltInsProtoBuf::registerAllExtensions) - ) - else null - proto to version - } diff --git a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt index cbaf9e9aa25..8e63e1f31ae 100644 --- a/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt +++ b/libraries/kotlinx-metadata/jvm/src/kotlinx/metadata/jvm/impl/JvmMetadataExtensions.kt @@ -298,12 +298,7 @@ internal class JvmMetadataExtensions : MetadataExtensions { override fun createPackageExtension(): KmPackageExtension = JvmPackageExtension() override fun createModuleFragmentExtensions(): KmModuleFragmentExtension = - object : KmModuleFragmentExtension { - override val type: KmExtensionType = KmExtensionType(KmModuleFragmentExtension::class) - - override fun accept(visitor: KmModuleFragmentExtensionVisitor) { - } - } + error("metadata-jvm doesn't have any extensions for module fragment!") override fun createFunctionExtension(): KmFunctionExtension = JvmFunctionExtension() diff --git a/libraries/kotlinx-metadata/src/kotlinx/metadata/internal/common/KotlinCommonMetadata.kt b/libraries/kotlinx-metadata/src/kotlinx/metadata/internal/common/KotlinCommonMetadata.kt deleted file mode 100644 index bde301ce7db..00000000000 --- a/libraries/kotlinx-metadata/src/kotlinx/metadata/internal/common/KotlinCommonMetadata.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2010-2022 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 kotlinx.metadata.internal.common - -import kotlinx.metadata.KmModuleFragment -import kotlinx.metadata.KmModuleFragmentVisitor -import kotlinx.metadata.impl.accept -import org.jetbrains.kotlin.metadata.ProtoBuf -import org.jetbrains.kotlin.metadata.builtins.readBuiltinsPackageFragment -import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl -import java.io.ByteArrayInputStream - -class KotlinCommonMetadata private constructor(private val proto: ProtoBuf.PackageFragment) { - fun toKmModuleFragment(): KmModuleFragment = - KmModuleFragment().apply(this::accept) - - class Writer : KmModuleFragmentVisitor() { - // TODO - } - - fun accept(v: KmModuleFragmentVisitor) { - val strings = NameResolverImpl(proto.strings, proto.qualifiedNames) - if (proto.hasPackage()) { - v.visitPackage()?.let { proto.`package`.accept(it, strings) } - } - for (klass in proto.class_List) { - v.visitClass()?.let { klass.accept(it, strings) } - } - v.visitEnd() - } - - companion object { - @JvmStatic - fun read(bytes: ByteArray): KotlinCommonMetadata? { - val (proto, _) = ByteArrayInputStream(bytes).readBuiltinsPackageFragment() - if (proto == null) return null - - return KotlinCommonMetadata(proto) - } - } -}