From 8430be39c926df42fb6aeab3fba27e36d3091468 Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Tue, 28 Nov 2023 17:41:31 +0100 Subject: [PATCH] [KLIB Resolver] Minor. Formatted --- .../resolver/KotlinLibraryResolver.kt | 6 +- .../resolver/KotlinResolvedLibrary.kt | 2 +- .../impl/KotlinLibraryResolverImpl.kt | 99 +++++++++---------- .../impl/KotlinResolvedLibraryImpl.kt | 7 +- 4 files changed, 57 insertions(+), 57 deletions(-) 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 09843c5cf50..e03c616593c 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 @@ -5,7 +5,7 @@ import org.jetbrains.kotlin.library.SearchPathResolver import org.jetbrains.kotlin.library.UnresolvedLibrary import org.jetbrains.kotlin.library.metadata.PackageAccessHandler -interface KotlinLibraryResolver { +interface KotlinLibraryResolver { val searchPathResolver: SearchPathResolver @@ -17,7 +17,7 @@ interface KotlinLibraryResolver { unresolvedLibraries: List, noStdLib: Boolean = false, noDefaultLibs: Boolean = false, - noEndorsedLibs: Boolean = false + noEndorsedLibs: Boolean = false, ): KotlinLibraryResolveResult = resolveWithoutDependencies( unresolvedLibraries, @@ -30,7 +30,7 @@ interface KotlinLibraryResolver { unresolvedLibraries: List, noStdLib: Boolean = false, noDefaultLibs: Boolean = false, - noEndorsedLibs: Boolean = false + noEndorsedLibs: Boolean = false, ): List fun List.resolveDependencies(): KotlinLibraryResolveResult diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinResolvedLibrary.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinResolvedLibrary.kt index 47578feaecc..394f195a957 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinResolvedLibrary.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/KotlinResolvedLibrary.kt @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.library.metadata.PackageAccessHandler /** * A [KotlinLibrary] wrapper that is used for resolving library's dependencies. */ -interface KotlinResolvedLibrary: PackageAccessHandler { +interface KotlinResolvedLibrary : PackageAccessHandler { // The library itself. val library: KotlinLibrary 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 deedd5147d5..f486518f6a5 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 @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.library.metadata.resolver.impl -import org.jetbrains.kotlin.konan.file.File import org.jetbrains.kotlin.library.* import org.jetbrains.kotlin.library.metadata.PackageAccessHandler import org.jetbrains.kotlin.library.metadata.resolver.KotlinLibraryResolveResult @@ -25,18 +24,18 @@ import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary import org.jetbrains.kotlin.library.metadata.resolver.LibraryOrder import org.jetbrains.kotlin.util.WithLogger -fun SearchPathResolver.libraryResolver(resolveManifestDependenciesLenient: Boolean = false) - = KotlinLibraryResolverImpl(this, resolveManifestDependenciesLenient) +fun SearchPathResolver.libraryResolver(resolveManifestDependenciesLenient: Boolean = false) = + KotlinLibraryResolverImpl(this, resolveManifestDependenciesLenient) -class KotlinLibraryResolverImpl internal constructor( - override val searchPathResolver: SearchPathResolver, - val resolveManifestDependenciesLenient: Boolean -): KotlinLibraryResolver, WithLogger by searchPathResolver { +class KotlinLibraryResolverImpl internal constructor( + override val searchPathResolver: SearchPathResolver, + val resolveManifestDependenciesLenient: Boolean, +) : KotlinLibraryResolver, WithLogger by searchPathResolver { override fun resolveWithoutDependencies( unresolvedLibraries: List, noStdLib: Boolean, noDefaultLibs: Boolean, - noEndorsedLibs: Boolean + noEndorsedLibs: Boolean, ) = findLibraries(unresolvedLibraries, noStdLib, noDefaultLibs, noEndorsedLibs) .leaveDistinct() .omitDuplicateNames() @@ -48,15 +47,15 @@ class KotlinLibraryResolverImpl internal constructor( * from the original library set (root set). */ private fun findLibraries( - unresolvedLibraries: List, - noStdLib: Boolean, - noDefaultLibs: Boolean, - noEndorsedLibs: Boolean + unresolvedLibraries: List, + noStdLib: Boolean, + noDefaultLibs: Boolean, + noEndorsedLibs: Boolean, ): List { val userProvidedLibraries = unresolvedLibraries.asSequence() - .mapNotNull { searchPathResolver.resolve(it) } - .toList() + .mapNotNull { searchPathResolver.resolve(it) } + .toList() val defaultLibraries = searchPathResolver.defaultLinks(noStdLib, noDefaultLibs, noEndorsedLibs) @@ -69,10 +68,10 @@ class KotlinLibraryResolverImpl internal constructor( * Leaves only distinct libraries (by absolute path), warns on duplicated paths. */ private fun List.leaveDistinct() = - this.groupBy { it.libraryFile.absolutePath }.let { groupedByAbsolutePath -> - warnOnLibraryDuplicates(groupedByAbsolutePath.filter { it.value.size > 1 }.keys) - groupedByAbsolutePath.map { it.value.first() } - } + this.groupBy { it.libraryFile.absolutePath }.let { groupedByAbsolutePath -> + warnOnLibraryDuplicates(groupedByAbsolutePath.filter { it.value.size > 1 }.keys) + groupedByAbsolutePath.map { it.value.first() } + } /** * Having two libraries with the same uniqName we only keep the first one. @@ -80,10 +79,10 @@ class KotlinLibraryResolverImpl internal constructor( * so make it a warning for now. */ private fun List.omitDuplicateNames() = - this.groupBy { it.uniqueName }.let { groupedByUniqName -> - warnOnLibraryDuplicateNames(groupedByUniqName.filter { it.value.size > 1 }.keys) - groupedByUniqName.map { it.value.first() } - } + this.groupBy { it.uniqueName }.let { groupedByUniqName -> + warnOnLibraryDuplicateNames(groupedByUniqName.filter { it.value.size > 1 }.keys) + groupedByUniqName.map { it.value.first() } + } private fun warnOnLibraryDuplicates(duplicatedPaths: Iterable) { duplicatedPaths.forEach { logger.warning("library included more than once: $it") } @@ -115,21 +114,21 @@ class KotlinLibraryResolverImpl internal constructor( newDependencies = newDependencies.map { library: KotlinResolvedLibraryImpl -> library.library.unresolvedDependencies(resolveManifestDependenciesLenient).asSequence() - .filterNot { searchPathResolver.isProvidedByDefault(it) } - .mapNotNull { searchPathResolver.resolve(it)?.let(::KotlinResolvedLibraryImpl) } - .map { resolved -> - val fileKey = resolved.library.libraryFile.fileKey - if (fileKey in cache) { - library.addDependency(cache[fileKey]!!) - null - } else { - cache.put(fileKey, resolved) - library.addDependency(resolved) - resolved - } + .filterNot { searchPathResolver.isProvidedByDefault(it) } + .mapNotNull { searchPathResolver.resolve(it)?.let(::KotlinResolvedLibraryImpl) } + .map { resolved -> + val fileKey = resolved.library.libraryFile.fileKey + if (fileKey in cache) { + library.addDependency(cache[fileKey]!!) + null + } else { + cache.put(fileKey, resolved) + library.addDependency(resolved) + resolved + } - }.filterNotNull() - .toList() + }.filterNotNull() + .toList() }.flatten() } while (newDependencies.isNotEmpty()) return result @@ -137,26 +136,26 @@ class KotlinLibraryResolverImpl internal constructor( } class KotlinLibraryResolverResultImpl( - private val roots: List -): KotlinLibraryResolveResult { + private val roots: List, +) : KotlinLibraryResolveResult { private val all: List - by lazy { - val result = mutableSetOf().also { it.addAll(roots) } + by lazy { + val result = mutableSetOf().also { it.addAll(roots) } - var newDependencies = result.toList() - do { - newDependencies = newDependencies - .map { it.resolvedDependencies }.flatten() - .filter { it !in result } - result.addAll(newDependencies) - } while (newDependencies.isNotEmpty()) + var newDependencies = result.toList() + do { + newDependencies = newDependencies + .map { it.resolvedDependencies }.flatten() + .filter { it !in result } + result.addAll(newDependencies) + } while (newDependencies.isNotEmpty()) - result.toList() - } + result.toList() + } override fun filterRoots(predicate: (KotlinResolvedLibrary) -> Boolean) = - KotlinLibraryResolverResultImpl(roots.filter(predicate)) + KotlinLibraryResolverResultImpl(roots.filter(predicate)) override fun getFullResolvedList(order: LibraryOrder?) = (order?.invoke(all) ?: all) diff --git a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinResolvedLibraryImpl.kt b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinResolvedLibraryImpl.kt index 3ce5db17a8e..8a7eb01eb79 100644 --- a/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinResolvedLibraryImpl.kt +++ b/compiler/util-klib-metadata/src/org/jetbrains/kotlin/library/metadata/resolver/impl/KotlinResolvedLibraryImpl.kt @@ -4,7 +4,7 @@ import org.jetbrains.kotlin.library.KotlinLibrary import org.jetbrains.kotlin.library.metadata.parseModuleHeader import org.jetbrains.kotlin.library.metadata.resolver.KotlinResolvedLibrary -class KotlinResolvedLibraryImpl(override val library: KotlinLibrary): KotlinResolvedLibrary { +class KotlinResolvedLibraryImpl(override val library: KotlinLibrary) : KotlinResolvedLibrary { private val _resolvedDependencies = mutableListOf() private val _emptyPackages by lazy { parseModuleHeader(library.moduleHeaderData).emptyPackageList } @@ -22,10 +22,11 @@ class KotlinResolvedLibraryImpl(override val library: KotlinLibrary): KotlinReso override fun markNeededForLink( library: KotlinLibrary, - fqName: String + fqName: String, ) { if (!isNeededForLink // fast path - && !_emptyPackages.contains(fqName)) { + && !_emptyPackages.contains(fqName) + ) { isNeededForLink = true } }