Skip to content

Commit f7baf33

Browse files
committed
[Metadata] Replace most of KLIB_LEGACY_METADATA_VERSION usages
Usages in production code are either invalid or unnecessary because the metadata will not be read from anywhere.
1 parent c00501c commit f7baf33

File tree

10 files changed

+29
-23
lines changed

10 files changed

+29
-23
lines changed

analysis/decompiled/decompiler-native/src/org/jetbrains/kotlin/analysis/decompiler/konan/KlibMetadataDeserializerForDecompiler.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
1313
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
1414
import org.jetbrains.kotlin.descriptors.NotFoundClasses
1515
import org.jetbrains.kotlin.incremental.components.LookupTracker
16-
import org.jetbrains.kotlin.library.KLIB_LEGACY_METADATA_VERSION
1716
import org.jetbrains.kotlin.metadata.ProtoBuf
17+
import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
1818
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
1919
import org.jetbrains.kotlin.name.FqName
2020
import org.jetbrains.kotlin.resolve.jvm.EnumEntriesDeserializationSupportImpl
@@ -59,7 +59,7 @@ internal class KlibMetadataDeserializerForDecompiler(
5959
createDummyPackageFragment(facadeFqName),
6060
proto.`package`,
6161
nameResolver,
62-
KLIB_LEGACY_METADATA_VERSION,
62+
MetadataVersion.INVALID_VERSION, // the version does not matter, the package itself is a dummy
6363
containerSource = null,
6464
components = deserializationComponents,
6565
classNames = { emptyList() },

compiler/frontend.common/src/org/jetbrains/kotlin/util/klibMetadataHelpers.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.config.metadataVersion
1212
import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
1313
import java.util.*
1414

15-
private val KLIB_LEGACY_METADATA_VERSION = MetadataVersion(1, 4, 1)
15+
val KLIB_LEGACY_METADATA_VERSION = MetadataVersion(1, 4, 1)
1616

1717
private val LANGUAGE_TO_KLIB_METADATA_VERSION = EnumMap<LanguageVersion, MetadataVersion>(LanguageVersion::class.java).apply {
1818
LanguageVersion.entries.forEach { this[it] = KLIB_LEGACY_METADATA_VERSION }
@@ -25,7 +25,7 @@ private val LANGUAGE_TO_KLIB_METADATA_VERSION = EnumMap<LanguageVersion, Metadat
2525
}
2626
}
2727

28-
private fun LanguageVersion.toKlibMetadataVersion(): MetadataVersion = LANGUAGE_TO_KLIB_METADATA_VERSION.getValue(this)
28+
fun LanguageVersion.toKlibMetadataVersion(): MetadataVersion = LANGUAGE_TO_KLIB_METADATA_VERSION.getValue(this)
2929

3030
fun CompilerConfiguration.klibMetadataVersionOrDefault(
3131
languageVersion: LanguageVersion = languageVersionSettings.languageVersion

compiler/tests-common/tests/org/jetbrains/kotlin/test/KlibTestUtil.kt

+4-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ import org.jetbrains.kotlin.resolve.CompilerEnvironment
4848
import org.jetbrains.kotlin.resolve.PlatformDependentAnalyzerServices
4949
import org.jetbrains.kotlin.storage.LockBasedStorageManager
5050
import org.jetbrains.kotlin.cli.common.disposeRootInWriteAction
51+
import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
5152
import org.jetbrains.kotlin.util.DummyLogger
53+
import org.jetbrains.kotlin.util.toKlibMetadataVersion
5254
import java.io.File
5355
import java.io.IOException
5456
import java.nio.file.Path
@@ -126,7 +128,7 @@ object KlibTestUtil {
126128

127129
val serializer = KlibMetadataMonolithicSerializer(
128130
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
129-
metadataVersion = KLIB_LEGACY_METADATA_VERSION,
131+
metadataVersion = LanguageVersionSettingsImpl.DEFAULT.languageVersion.toKlibMetadataVersion(),
130132
exportKDoc = false,
131133
skipExpects = false,
132134
project = null,
@@ -143,7 +145,7 @@ object KlibTestUtil {
143145
versions = KotlinLibraryVersioning(
144146
compilerVersion = null,
145147
abiVersion = null,
146-
metadataVersion = KLIB_LEGACY_METADATA_VERSION,
148+
metadataVersion = LanguageVersionSettingsImpl.DEFAULT.languageVersion.toKlibMetadataVersion(),
147149
),
148150
builtInsPlatform = BuiltInsPlatform.COMMON,
149151
nativeTargets = emptyList(),

compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataClassDataFinder.kt

+9-5
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@
66
package org.jetbrains.kotlin.library.metadata
77

88
import org.jetbrains.kotlin.descriptors.SourceElement
9-
import org.jetbrains.kotlin.library.KLIB_LEGACY_METADATA_VERSION
9+
import org.jetbrains.kotlin.library.metadataVersion
1010
import org.jetbrains.kotlin.metadata.ProtoBuf.PackageFragment
11+
import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
1112
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
1213
import org.jetbrains.kotlin.name.ClassId
1314
import org.jetbrains.kotlin.serialization.deserialization.ClassData
1415
import org.jetbrains.kotlin.serialization.deserialization.ClassDataFinder
15-
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
1616
import org.jetbrains.kotlin.serialization.deserialization.getClassId
1717

1818
class KlibMetadataClassDataFinder(
1919
private val fragment: PackageFragment,
2020
private val nameResolver: NameResolver,
21-
private val containerSource: DeserializedContainerSource? = null
21+
private val containerSource: KlibDeserializedContainerSource? = null
2222
) : ClassDataFinder {
2323
val nameList = fragment.getExtension(KlibMetadataProtoBuf.className).orEmpty()
2424

@@ -31,7 +31,11 @@ class KlibMetadataClassDataFinder(
3131

3232
val foundClass = fragment.getClass_(index) ?: error("Could not find data for serialized class $classId")
3333

34-
/* TODO: binary version supposed to be read from protobuf. */
35-
return ClassData(nameResolver, foundClass, KLIB_LEGACY_METADATA_VERSION, containerSource ?: SourceElement.NO_SOURCE)
34+
return ClassData(
35+
nameResolver,
36+
foundClass,
37+
containerSource?.klib?.metadataVersion ?: MetadataVersion.INVALID_VERSION,
38+
containerSource ?: SourceElement.NO_SOURCE
39+
)
3640
}
3741
}

compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataPackageFragment.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@ package org.jetbrains.kotlin.library.metadata
88
import org.jetbrains.kotlin.builtins.BuiltInsPackageFragment
99
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
1010
import org.jetbrains.kotlin.descriptors.SourceElement
11-
import org.jetbrains.kotlin.library.KLIB_LEGACY_METADATA_VERSION
1211
import org.jetbrains.kotlin.library.KotlinLibrary
12+
import org.jetbrains.kotlin.library.metadataVersion
1313
import org.jetbrains.kotlin.metadata.ProtoBuf
14+
import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
1415
import org.jetbrains.kotlin.metadata.deserialization.NameResolverImpl
1516
import org.jetbrains.kotlin.name.FqName
1617
import org.jetbrains.kotlin.name.Name
1718
import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents
1819
import org.jetbrains.kotlin.serialization.deserialization.DeserializedPackageFragment
19-
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
2020
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope
2121
import org.jetbrains.kotlin.serialization.deserialization.getClassId
2222
import org.jetbrains.kotlin.serialization.deserialization.getName
@@ -109,12 +109,11 @@ abstract class KlibMetadataPackageFragment(
109109
override fun getSource(): SourceElement = containerSource ?: super.source
110110

111111
private val _memberScope by lazy {
112-
/* TODO: we fake proto binary versioning for now. */
113112
DeserializedPackageMemberScope(
114113
this,
115114
proto.getPackage(),
116115
nameResolver,
117-
KLIB_LEGACY_METADATA_VERSION,
116+
containerSource?.klib?.metadataVersion ?: MetadataVersion.INVALID_VERSION,
118117
/* containerSource = */ containerSource,
119118
components,
120119
"scope for $this"

compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt

-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
1212
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
1313
import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
1414

15-
val KLIB_LEGACY_METADATA_VERSION = MetadataVersion(1, 4, 1)
16-
1715
/**
1816
* [org.jetbrains.kotlin.library.KotlinAbiVersion]
1917
*/

js/js.tests/test/org/jetbrains/kotlin/benchmarks/GenerateIrRuntime.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ class GenerateIrRuntime {
235235
fun runMonolithicDiskWriting() {
236236
val compilerVersion = KotlinCompilerVersion.getVersion()
237237
val abiVersion = KotlinAbiVersion.CURRENT
238-
val metadataVersion = KLIB_LEGACY_METADATA_VERSION
238+
val metadataVersion = MetadataVersion.INSTANCE
239239

240240
val versions = KotlinLibraryVersioning(compilerVersion, abiVersion, metadataVersion)
241241
val file = createTempFile(directory = workingDir.toPath()).toFile()

kotlin-native/Interop/StubGenerator/src/org/jetbrains/kotlin/native/interop/gen/jvm/InteropLibraryCreation.kt

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.konan.library.impl.KonanLibraryWriterImpl
1414
import org.jetbrains.kotlin.konan.target.KonanTarget
1515
import org.jetbrains.kotlin.library.*
1616
import org.jetbrains.kotlin.library.impl.BuiltInsPlatform
17+
import org.jetbrains.kotlin.util.KLIB_LEGACY_METADATA_VERSION
1718
import java.util.*
1819

1920
fun createInteropLibrary(
@@ -31,6 +32,7 @@ fun createInteropLibrary(
3132
val version = KotlinLibraryVersioning(
3233
abiVersion = KotlinAbiVersion.CURRENT,
3334
compilerVersion = KotlinCompilerVersion.VERSION,
35+
// TODO KT-74417 Consider using `MetadataVersion.INSTANCE` in version 2.3 here
3436
metadataVersion = KLIB_LEGACY_METADATA_VERSION,
3537
)
3638
val libFile = File(outputPath)

native/commonizer/tests/org/jetbrains/kotlin/commonizer/utils/mocks.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import org.jetbrains.kotlin.commonizer.konan.NativeSensitiveManifestData
1717
import org.jetbrains.kotlin.commonizer.mergedtree.*
1818
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
1919
import org.jetbrains.kotlin.descriptors.*
20-
import org.jetbrains.kotlin.library.KLIB_LEGACY_METADATA_VERSION
2120
import org.jetbrains.kotlin.library.KotlinLibraryVersioning
2221
import org.jetbrains.kotlin.library.SerializedMetadata
22+
import org.jetbrains.kotlin.metadata.deserialization.MetadataVersion
2323
import org.jetbrains.kotlin.storage.LockBasedStorageManager
2424
import org.jetbrains.kotlin.test.KotlinTestUtils
2525

@@ -123,7 +123,7 @@ internal class MockModulesProvider private constructor(
123123

124124
val SERIALIZER = KlibMetadataMonolithicSerializer(
125125
languageVersionSettings = LanguageVersionSettingsImpl.DEFAULT,
126-
metadataVersion = KLIB_LEGACY_METADATA_VERSION,
126+
metadataVersion = MetadataVersion.INSTANCE,
127127
exportKDoc = false,
128128
skipExpects = false,
129129
project = null,

native/native.tests/tests/org/jetbrains/kotlin/konan/test/NativeKlibSerializerFacade.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ import org.jetbrains.kotlin.test.model.*
4141
import org.jetbrains.kotlin.test.services.*
4242
import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator.Companion.getKlibArtifactFile
4343
import org.jetbrains.kotlin.test.services.configuration.nativeEnvironmentConfigurator
44+
import org.jetbrains.kotlin.util.klibMetadataVersionOrDefault
45+
import org.jetbrains.kotlin.util.toKlibMetadataVersion
4446

4547
abstract class AbstractNativeKlibSerializerFacade(
4648
testServices: TestServices
@@ -73,7 +75,7 @@ abstract class AbstractNativeKlibSerializerFacade(
7375
versions = KotlinLibraryVersioning(
7476
abiVersion = KotlinAbiVersion.CURRENT,
7577
compilerVersion = KotlinCompilerVersion.getVersion(),
76-
metadataVersion = KLIB_LEGACY_METADATA_VERSION,
78+
metadataVersion = configuration.klibMetadataVersionOrDefault(),
7779
),
7880
target = testServices.nativeEnvironmentConfigurator.getNativeTarget(module),
7981
output = outputArtifact.outputFile.path,
@@ -145,8 +147,7 @@ class ClassicNativeKlibSerializerFacade(testServices: TestServices) : AbstractNa
145147

146148
val serializedMetadata = KlibMetadataMonolithicSerializer(
147149
configuration.languageVersionSettings,
148-
metadataVersion = configuration[CommonConfigurationKeys.METADATA_VERSION] as? MetadataVersion
149-
?: KLIB_LEGACY_METADATA_VERSION,
150+
metadataVersion = configuration.klibMetadataVersionOrDefault(),
150151
frontendOutput.project,
151152
exportKDoc = false,
152153
skipExpects = true,

0 commit comments

Comments
 (0)