diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt index 9be976c912e..1368ba7afc5 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt @@ -19,8 +19,6 @@ import org.jetbrains.kotlin.util.Logger class JsLibraryResolver( repositories: List, directLibs: List, - knownAbiVersions: List?, - knownCompilerVersions: List?, distributionKlib: String?, localKotlinDir: String?, skipCurrentDir: Boolean, @@ -28,8 +26,6 @@ class JsLibraryResolver( ) : KotlinLibraryProperResolverWithAttributes( repositories, directLibs, - knownAbiVersions, - knownCompilerVersions, distributionKlib, localKotlinDir, skipCurrentDir, @@ -48,8 +44,6 @@ fun jsResolveLibraries(libraries: List, logger: Logger): KotlinLibraryRe val libraryResolver = JsLibraryResolver( repositories = emptyList(), directLibs = libraryAbsolutePaths, - knownAbiVersions = listOf(KotlinAbiVersion.CURRENT), - knownCompilerVersions = emptyList(), distributionKlib = null, localKotlinDir = null, skipCurrentDir = false, diff --git a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/JvmLibraryResolver.kt b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/JvmLibraryResolver.kt index a147887502d..fbe4f79c8cc 100644 --- a/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/JvmLibraryResolver.kt +++ b/compiler/ir/serialization.jvm/src/org/jetbrains/kotlin/ir/backend/jvm/JvmLibraryResolver.kt @@ -21,8 +21,6 @@ val jvmLibrariesProvidedByDefault = setOf("stdlib", "kotlin") class JvmLibraryResolver( repositories: List, directLibs: List, - knownAbiVersions: List?, - knownCompilerVersions: List?, distributionKlib: String?, localKotlinDir: String?, skipCurrentDir: Boolean, @@ -30,8 +28,6 @@ class JvmLibraryResolver( ) : KotlinLibraryProperResolverWithAttributes( repositories, directLibs, - knownAbiVersions, - knownCompilerVersions, distributionKlib, localKotlinDir, skipCurrentDir, @@ -54,8 +50,6 @@ fun jvmResolveLibraries(libraries: List, logger: Logger): KotlinLibraryR val libraryResolver = JvmLibraryResolver( repositories = emptyList(), directLibs = libraryAbsolutePaths, - knownAbiVersions = listOf(KotlinAbiVersion.CURRENT), - knownCompilerVersions = emptyList(), distributionKlib = null, localKotlinDir = null, skipCurrentDir = false, diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/SearchPathResolver.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/SearchPathResolver.kt index 55ba0a44ee3..c5957f82f2e 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/SearchPathResolver.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/SearchPathResolver.kt @@ -20,11 +20,6 @@ interface SearchPathResolver : WithLogger { fun isProvidedByDefault(unresolved: UnresolvedLibrary): Boolean = false } -interface SearchPathResolverWithAttributes : SearchPathResolver { - val knownAbiVersions: List? - val knownCompilerVersions: List? -} - // This is a simple library resolver that only cares for file names. abstract class KotlinLibrarySearchPathResolver( repositories: List, @@ -215,15 +210,13 @@ fun CompilerVersion.compatible(other: CompilerVersion) = abstract class KotlinLibraryProperResolverWithAttributes( repositories: List, directLibs: List, - override val knownAbiVersions: List?, - override val knownCompilerVersions: List?, distributionKlib: String?, localKotlinDir: String?, skipCurrentDir: Boolean, override val logger: Logger, private val knownIrProviders: List ) : KotlinLibrarySearchPathResolver(repositories, directLibs, distributionKlib, localKotlinDir, skipCurrentDir, logger), - SearchPathResolverWithAttributes { + SearchPathResolver { override fun libraryMatch(candidate: L, unresolved: UnresolvedLibrary): Boolean { val candidatePath = candidate.libraryFile.absolutePath @@ -231,13 +224,8 @@ abstract class KotlinLibraryProperResolverWithAttributes( val candidateAbiVersion = candidate.versions.abiVersion val candidateLibraryVersion = candidate.versions.libraryVersion - - val abiVersionMatch = candidateAbiVersion != null && - knownAbiVersions != null && - knownAbiVersions!!.contains(candidateAbiVersion) - - if (!abiVersionMatch) { - logger.warning("skipping $candidatePath. The abi versions don't match. Expected '${knownAbiVersions}', found '${candidateAbiVersion}'. The library produced by ${candidateCompilerVersion} compiler") + if (candidateAbiVersion?.isCompatible() != true) { + logger.warning("skipping $candidatePath. Incompatible abi version. Expected '${KotlinAbiVersion.CURRENT}', found '${candidateAbiVersion}'. The library produced by ${candidateCompilerVersion} compiler") return false } @@ -262,11 +250,10 @@ abstract class KotlinLibraryProperResolverWithAttributes( class SingleKlibComponentResolver( klibFile: String, - knownAbiVersions: List?, logger: Logger, knownIrProviders: List ) : KotlinLibraryProperResolverWithAttributes( - emptyList(), listOf(klibFile), knownAbiVersions, emptyList(), + emptyList(), listOf(klibFile), null, null, false, logger, knownIrProviders ) { override fun libraryComponentBuilder(file: File, isDefault: Boolean) = createKotlinLibraryComponents(file, isDefault) @@ -287,7 +274,7 @@ class SingleKlibComponentResolver( object CompilerSingleFileKlibResolveStrategy : SingleFileKlibResolveStrategy { override fun resolve(libraryFile: File, logger: Logger) = SingleKlibComponentResolver( - libraryFile.absolutePath, listOf(KotlinAbiVersion.CURRENT), logger, emptyList() + libraryFile.absolutePath, logger, emptyList() ).resolve(libraryFile.absolutePath) } @@ -303,6 +290,6 @@ class CompilerSingleFileKlibResolveAllowingIrProvidersStrategy( ) : SingleFileKlibResolveStrategy { override fun resolve(libraryFile: File, logger: Logger) = SingleKlibComponentResolver( - libraryFile.absolutePath, listOf(KotlinAbiVersion.CURRENT), logger, knownIrProviders + libraryFile.absolutePath, logger, knownIrProviders ).resolve(libraryFile.absolutePath) } \ No newline at end of file