DO_NOT_MERGE: Mark the remaining parts of the KLIB resolver
diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinLibraryResolver.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinLibraryResolver.kt index 633a65f..ffc147b 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinLibraryResolver.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinLibraryResolver.kt
@@ -6,6 +6,7 @@ import org.jetbrains.kotlin.library.UnresolvedLibrary import org.jetbrains.kotlin.library.metadata.PackageAccessHandler +// TODO: drop this as a part of KLIB resolver (+) interface KotlinLibraryResolver<L : KotlinLibrary> { val searchPathResolver: SearchPathResolver<L> @@ -55,6 +56,7 @@ fun List<KotlinLibrary>.resolveDependencies(): KotlinLibraryResolveResult } +// TODO: drop this as a part of KLIB resolver (+) interface KotlinLibraryResolveResult { fun filterRoots(predicate: (KotlinResolvedLibrary) -> Boolean): KotlinLibraryResolveResult @@ -66,8 +68,10 @@ } +// TODO: drop this as a part of KLIB resolver (+) typealias LibraryOrder = (Iterable<KotlinResolvedLibrary>) -> List<KotlinResolvedLibrary> +// TODO: drop this as a part of KLIB resolver (+) val TopologicalLibraryOrder: LibraryOrder = { input -> val sorted = mutableListOf<KotlinResolvedLibrary>() val visited = mutableSetOf<KotlinResolvedLibrary>()
diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinLibraryResolverImpl.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinLibraryResolverImpl.kt index 3c9c420..46436b7 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinLibraryResolverImpl.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinLibraryResolverImpl.kt
@@ -25,9 +25,11 @@ import org.jetbrains.kotlin.library.metadata.resolver.LibraryOrder import org.jetbrains.kotlin.util.WithLogger +// TODO: drop this as a part of KLIB resolver (+) fun <L : KotlinLibrary> SearchPathResolver<L>.libraryResolver(resolveManifestDependenciesLenient: Boolean = false) = KotlinLibraryResolverImpl<L>(this, resolveManifestDependenciesLenient) +// TODO: drop this as a part of KLIB resolver (+) class KotlinLibraryResolverImpl<L : KotlinLibrary> internal constructor( override val searchPathResolver: SearchPathResolver<L>, val resolveManifestDependenciesLenient: Boolean, @@ -155,6 +157,7 @@ } } +// TODO: drop this as a part of KLIB resolver (+) class KotlinLibraryResolverResultImpl( private val roots: List<KotlinResolvedLibrary>, ) : KotlinLibraryResolveResult {
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 7b14274..17e2683 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/SearchPathResolver.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/SearchPathResolver.kt
@@ -16,6 +16,7 @@ const val KOTLIN_WASM_STDLIB_NAME: String = "kotlin" const val KOTLINTEST_MODULE_NAME: String = "kotlin-test" +// TODO: drop this as a part of KLIB resolver (+) interface SearchPathResolver<L : KotlinLibrary> : WithLogger { /** * The search root for KLIBs. @@ -106,12 +107,14 @@ fun isProvidedByDefault(unresolved: UnresolvedLibrary): Boolean = false } +// TODO: drop this as a part of KLIB resolver (+) fun <L : KotlinLibrary> SearchPathResolver<L>.resolve(unresolved: UnresolvedLibrary): L? = when (unresolved) { is LenientUnresolvedLibrary -> resolve(unresolved) is RequiredUnresolvedLibrary -> resolve(unresolved) } // This is a simple library resolver that only cares for file names. +// TODO: drop this as a part of KLIB resolver (+) abstract class KotlinLibrarySearchPathResolver<L : KotlinLibrary>( directLibs: List<String>, val distributionKlib: String?, @@ -285,6 +288,7 @@ // This is a library resolver aware of attributes shared between platforms, // such as abi version. // JS and Native resolvers are inherited from this one. +// TODO: drop this as a part of KLIB resolver (+) abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>( directLibs: List<String>, distributionKlib: String?, @@ -336,6 +340,7 @@ } } +// TODO: drop this as a part of KLIB resolver (+) class SingleKlibComponentResolver( klibFile: String, logger: Logger, @@ -361,6 +366,7 @@ * * Typical usage scenario: compiler. */ +// TODO: drop this as a part of KLIB resolver (+) object CompilerSingleFileKlibResolveStrategy : SingleFileKlibResolveStrategy { override fun resolve(libraryFile: File, logger: Logger) = SingleKlibComponentResolver( @@ -375,6 +381,8 @@ // TODO: It looks like a hack because it is. // The reason this strategy exists is that we shouldn't skip Native metadata-based interop libraries // when generating compiler caches. +// +// TODO: drop this as a part of KLIB resolver (+) class CompilerSingleFileKlibResolveAllowingIrProvidersStrategy( private val knownIrProviders: List<String> ) : SingleFileKlibResolveStrategy {
diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/SingleFileResolve.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/SingleFileResolve.kt index e07cc41..91ddf14 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/SingleFileResolve.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/SingleFileResolve.kt
@@ -9,10 +9,12 @@ import org.jetbrains.kotlin.util.DummyLogger import org.jetbrains.kotlin.util.Logger +// TODO: drop this as a part of KLIB resolver (+) fun interface SingleFileKlibResolveStrategy { fun resolve(libraryFile: File, logger: Logger): KotlinLibrary } +// TODO: drop this as a part of KLIB resolver (+) fun resolveSingleFileKlib( libraryFile: File, logger: Logger = DummyLogger,
diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/ToolingResolve.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/ToolingResolve.kt index 43d1591..8912892 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/ToolingResolve.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/ToolingResolve.kt
@@ -25,6 +25,7 @@ * * Typical usage scenario: IDE. */ +// TODO: drop this as a part of KLIB resolver (+) object ToolingSingleFileKlibResolveStrategy : SingleFileKlibResolveStrategy { override fun resolve(libraryFile: File, logger: Logger): KotlinLibrary = tryResolve(libraryFile, logger)
diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/UnresolvedLibrary.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/UnresolvedLibrary.kt index b9d990e..63812bf 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/UnresolvedLibrary.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/UnresolvedLibrary.kt
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.library +// TODO: drop this as a part of KLIB resolver (+) fun UnresolvedLibrary(path: String, lenient: Boolean): UnresolvedLibrary = if (lenient) LenientUnresolvedLibrary(path) else RequiredUnresolvedLibrary(path) @@ -14,10 +15,13 @@ * - In general, `unique_name` needs not be equal to the file name of the library. And this adds some mess to the classes * that implement the "resolver" logic, e.g. [SearchPathResolver]. */ +// TODO: drop this as a part of KLIB resolver (+) sealed class UnresolvedLibrary { abstract val path: String } +// TODO: drop this as a part of KLIB resolver (+) data class RequiredUnresolvedLibrary(override val path: String) : UnresolvedLibrary() +// TODO: drop this as a part of KLIB resolver (+) data class LenientUnresolvedLibrary(override val path: String) : UnresolvedLibrary()
diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryImpl.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryImpl.kt index 6897920..6795648 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryImpl.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryImpl.kt
@@ -231,6 +231,7 @@ return KotlinLibraryImpl(base, metadata, ir) } +// TODO: drop this as a part of KLIB resolver (+) fun createKotlinLibraryComponents( libraryFile: File, isDefault: Boolean = true, @@ -243,6 +244,7 @@ } } +// TODO: drop this as a part of KLIB resolver (+) fun isKotlinLibrary(libraryFile: File): Boolean = try { val libraryPath = libraryFile.absolutePath @@ -269,5 +271,6 @@ false } +// TODO: drop this as a part of KLIB resolver (+) fun isKotlinLibrary(libraryFile: java.io.File): Boolean = isKotlinLibrary(File(libraryFile.absolutePath))
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt index ebe4aac..14401e8 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLibrariesResolveSupport.kt
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.library.toUnresolvedLibraries import org.jetbrains.kotlin.library.validateNoLibrariesWerePassedViaCliByUniqueName +// TODO: drop this as a part of KLIB resolver (+) class KonanLibrariesResolveSupport( configuration: CompilerConfiguration, target: KonanTarget,
diff --git a/kotlin-native/klib/src/org/jetbrains/kotlin/cli/klib/KlibToolSearchPathResolver.kt b/kotlin-native/klib/src/org/jetbrains/kotlin/cli/klib/KlibToolSearchPathResolver.kt index 74c8449..f20027c 100644 --- a/kotlin-native/klib/src/org/jetbrains/kotlin/cli/klib/KlibToolSearchPathResolver.kt +++ b/kotlin-native/klib/src/org/jetbrains/kotlin/cli/klib/KlibToolSearchPathResolver.kt
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.library.KotlinLibrary import org.jetbrains.kotlin.library.KotlinLibrarySearchPathResolver +// TODO: drop this as a part of KLIB resolver (+) internal fun klibResolver( distributionKlib: String?, skipCurrentDir: Boolean,
diff --git a/native/utils/src/org/jetbrains/kotlin/konan/library/SearchPathResolver.kt b/native/utils/src/org/jetbrains/kotlin/konan/library/SearchPathResolver.kt index 5431512..d16df11 100644 --- a/native/utils/src/org/jetbrains/kotlin/konan/library/SearchPathResolver.kt +++ b/native/utils/src/org/jetbrains/kotlin/konan/library/SearchPathResolver.kt
@@ -8,10 +8,12 @@ import org.jetbrains.kotlin.util.DummyLogger import org.jetbrains.kotlin.util.Logger +// TODO: drop this as a part of KLIB resolver (+) interface SearchPathResolverWithTarget<L : KotlinLibrary> : SearchPathResolver<L> { val target: KonanTarget } +// TODO: drop this as a part of KLIB resolver (+) fun defaultResolver( directLibs: List<String>, target: KonanTarget, @@ -26,6 +28,7 @@ logger = logger ) +// TODO: drop this as a part of KLIB resolver (+) class KonanLibraryProperResolver( directLibs: List<String>, override val target: KonanTarget,