diff --git a/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/KotlinBuiltInDecompiler.kt b/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/KotlinBuiltInDecompiler.kt index 1100d4f3d95..50f5bce3138 100644 --- a/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/KotlinBuiltInDecompiler.kt +++ b/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/KotlinBuiltInDecompiler.kt @@ -53,7 +53,7 @@ class BuiltInDefinitionFile( val stream = ByteArrayInputStream(contents) val version = BuiltInsBinaryVersion.readFrom(stream) - if (!version.isCompatible()) { + if (!version.isCompatibleWithCurrentCompilerVersion()) { return Incompatible(version) } diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt index 054d7c26cc3..2d77949f2e2 100644 --- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt +++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt @@ -170,7 +170,7 @@ private data class BinaryVersionAndPackageFragment( fun createFromStream(stream: InputStream): BinaryVersionAndPackageFragment { val version = BuiltInsBinaryVersion.readFrom(stream) - if (!version.isCompatible()) { + if (!version.isCompatibleWithCurrentCompilerVersion()) { // TODO: report a proper diagnostic throw UnsupportedOperationException( "Kotlin built-in definition format version is not supported: " + diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KlibIrVersion.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KlibIrVersion.kt index a826f131299..f6d40365bb3 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KlibIrVersion.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/KlibIrVersion.kt @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion class KlibIrVersion(major: Int, minor: Int, patch: Int) : BinaryVersion(major, minor, patch) { - override fun isCompatible(): Boolean = isCompatibleTo(INSTANCE) + override fun isCompatibleWithCurrentCompilerVersion(): Boolean = isCompatibleTo(INSTANCE) companion object { diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataMetadataVersion.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataMetadataVersion.kt index 9d02c95ba3b..bfe37dbe115 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataMetadataVersion.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/KlibMetadataMetadataVersion.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion class KlibMetadataVersion(vararg numbers: Int) : BinaryVersion(*numbers) { - override fun isCompatible(): Boolean = isCompatibleTo(INSTANCE) + override fun isCompatibleWithCurrentCompilerVersion(): Boolean = isCompatibleTo(INSTANCE) companion object { @JvmField diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt index 3746a718c59..fe677a8e0c5 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/deserialization/MetadataPackageFragmentProvider.kt @@ -155,7 +155,7 @@ class MetadataPackageFragment( private fun readProto(stream: InputStream): Triple { val version = BuiltInsBinaryVersion.readFrom(stream) - if (!version.isCompatible()) { + if (!version.isCompatibleWithCurrentCompilerVersion()) { // TODO: report a proper diagnostic throw UnsupportedOperationException( "Kotlin metadata definition format version is not supported: " + diff --git a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt index fb61d31e15f..61971ed5427 100644 --- a/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt +++ b/core/metadata.jvm/src/org/jetbrains/kotlin/metadata/jvm/deserialization/JvmMetadataVersion.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion class JvmMetadataVersion(versionArray: IntArray, val isStrictSemantics: Boolean) : BinaryVersion(*versionArray) { constructor(vararg numbers: Int) : this(numbers, isStrictSemantics = false) - override fun isCompatible(): Boolean = + override fun isCompatibleWithCurrentCompilerVersion(): Boolean = // NOTE: 1.0 is a pre-Kotlin-1.0 metadata version, with which the current compiler is incompatible (major != 1 || minor != 0) && if (isStrictSemantics) { diff --git a/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/BuiltInsBinaryVersion.kt b/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/BuiltInsBinaryVersion.kt index 5ae0d1ab621..709d31cb479 100644 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/BuiltInsBinaryVersion.kt +++ b/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/BuiltInsBinaryVersion.kt @@ -14,7 +14,7 @@ import java.io.InputStream * of the core protobuf messages (metadata.proto). */ class BuiltInsBinaryVersion(vararg numbers: Int) : BinaryVersion(*numbers) { - override fun isCompatible(): Boolean = + override fun isCompatibleWithCurrentCompilerVersion(): Boolean = this.isCompatibleTo(INSTANCE) companion object { diff --git a/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/readPackageFragment.kt b/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/readPackageFragment.kt index 4a43d024fff..fef594634f3 100644 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/readPackageFragment.kt +++ b/core/metadata/src/org/jetbrains/kotlin/metadata/builtins/readPackageFragment.kt @@ -13,7 +13,7 @@ fun InputStream.readBuiltinsPackageFragment(): Pair val version = BuiltInsBinaryVersion.readFrom(stream) val proto = - if (version.isCompatible()) ProtoBuf.PackageFragment.parseFrom( + if (version.isCompatibleWithCurrentCompilerVersion()) ProtoBuf.PackageFragment.parseFrom( stream, ExtensionRegistryLite.newInstance().apply(BuiltInsProtoBuf::registerAllExtensions) ) diff --git a/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/BinaryVersion.kt b/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/BinaryVersion.kt index 70a9bc2a423..1106ff859b9 100644 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/BinaryVersion.kt +++ b/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/BinaryVersion.kt @@ -25,7 +25,10 @@ abstract class BinaryVersion(private vararg val numbers: Int) { numbers.asList().subList(3, numbers.size).toList() } else emptyList() - abstract fun isCompatible(): Boolean + @Deprecated("Please use isCompatibleWithCurrentCompilerVersion()", ReplaceWith("isCompatibleWithCurrentCompilerVersion()")) + fun isCompatible(): Boolean = isCompatibleWithCurrentCompilerVersion() + + abstract fun isCompatibleWithCurrentCompilerVersion(): Boolean fun toArray(): IntArray = numbers diff --git a/js/js.config/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt b/js/js.config/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt index 10668c725d3..ad1271b8845 100644 --- a/js/js.config/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt +++ b/js/js.config/src/org/jetbrains/kotlin/utils/KotlinJavascriptMetadataUtils.kt @@ -14,7 +14,7 @@ import java.util.* class KotlinJavascriptMetadata(val version: JsMetadataVersion, val moduleName: String, val body: ByteArray) class JsMetadataVersion(vararg numbers: Int) : BinaryVersion(*numbers) { - override fun isCompatible(): Boolean = + override fun isCompatibleWithCurrentCompilerVersion(): Boolean = this.isCompatibleTo(INSTANCE) fun toInteger() = (patch shl 16) + (minOf(minor, 255) shl 8) + minOf(major, 255) diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java index b1cb7bd07ee..12a4546cb20 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JsConfig.java @@ -194,7 +194,7 @@ public class JsConfig { Set moduleNames = new LinkedHashSet<>(); for (KotlinJavascriptMetadata metadata : metadataList) { - if (!metadata.getVersion().isCompatible() && !skipMetadataVersionCheck) { + if (!metadata.getVersion().isCompatibleWithCurrentCompilerVersion() && !skipMetadataVersionCheck) { report.error("File '" + path + "' was compiled with an incompatible version of Kotlin. " + "The binary version of its metadata is " + metadata.getVersion() + ", expected version is " + JsMetadataVersion.INSTANCE); @@ -296,7 +296,7 @@ public class JsConfig { private ModuleDescriptorImpl createModuleDescriptor(KotlinJavascriptMetadata metadata) { return factoryMap.computeIfAbsent(metadata, m -> { LanguageVersionSettings languageVersionSettings = CommonConfigurationKeysKt.getLanguageVersionSettings(configuration); - assert m.getVersion().isCompatible() || + assert m.getVersion().isCompatibleWithCurrentCompilerVersion() || languageVersionSettings.getFlag(AnalysisFlags.getSkipMetadataVersionCheck()) : "Expected JS metadata version " + JsMetadataVersion.INSTANCE + ", but actual metadata version is " + m.getVersion(); diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/NativeLibraryLoader.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/NativeLibraryLoader.kt index 3f9dab76f65..dff9b7c3bad 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/NativeLibraryLoader.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/NativeLibraryLoader.kt @@ -32,7 +32,7 @@ internal class DefaultNativeLibraryLoader( logger.fatal("Library does not have metadata version specified in manifest: $file") val metadataVersion = library.metadataVersion - if (metadataVersion?.isCompatible() != true) + if (metadataVersion?.isCompatibleWithCurrentCompilerVersion() != true) logger.fatal( """ Library has incompatible metadata version ${metadataVersion ?: "\"unknown\""}: $file