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 ae6661847b7..9375b821953 100644 --- a/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/BinaryVersion.kt +++ b/core/metadata/src/org/jetbrains/kotlin/metadata/deserialization/BinaryVersion.kt @@ -14,7 +14,7 @@ package org.jetbrains.kotlin.metadata.deserialization * - Patch version can be increased freely and is only supposed to be used for debugging. Increase the patch version when you * make a change to binaries which is both forward- and backward compatible. */ -abstract class BinaryVersion(vararg val numbers: Int) { +abstract class BinaryVersion(private vararg val numbers: Int) { val major: Int = numbers.getOrNull(0) ?: UNKNOWN val minor: Int = numbers.getOrNull(1) ?: UNKNOWN val patch: Int = numbers.getOrNull(2) ?: UNKNOWN diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt index 4b7a3b3cbda..033923ef317 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/versions/UnsupportedAbiVersionNotificationPanelProvider.kt @@ -345,9 +345,11 @@ fun EditorNotificationPanel.createComponentActionLabel(labelText: String, callba } private operator fun BinaryVersion.compareTo(other: BinaryVersion): Int { - for (i in 0..Math.max(numbers.size, other.numbers.size) - 1) { - val thisPart = numbers.getOrNull(i) ?: -1 - val otherPart = other.numbers.getOrNull(i) ?: -1 + val first = this.toArray() + val second = other.toArray() + for (i in 0 until maxOf(first.size, second.size)) { + val thisPart = first.getOrNull(i) ?: -1 + val otherPart = second.getOrNull(i) ?: -1 if (thisPart != otherPart) { return thisPart - otherPart