diff --git a/libraries/tools/kotlin-gradle-plugin/api/kotlin-gradle-plugin.api b/libraries/tools/kotlin-gradle-plugin/api/kotlin-gradle-plugin.api index 9256a611dae..0fe356a4302 100644 --- a/libraries/tools/kotlin-gradle-plugin/api/kotlin-gradle-plugin.api +++ b/libraries/tools/kotlin-gradle-plugin/api/kotlin-gradle-plugin.api @@ -1,10 +1,10 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver { + public static final field Companion Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver$Companion; public abstract fun resolve (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;Ljava/util/Set;)V } -public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver$Empty : org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver { - public static final field INSTANCE Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver$Empty; - public fun resolve (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;Ljava/util/Set;)V +public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver$Companion { + public final fun getEmpty ()Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver; } public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyEffect { @@ -25,17 +25,13 @@ public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeDepend public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver$Companion { public static final field DOCUMENTATION_BINARY_TYPE Ljava/lang/String; public static final field SOURCES_BINARY_TYPE Ljava/lang/String; + public final fun getEmpty ()Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver; public final fun getGradleArtifact (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency;)Lorg/gradle/api/artifacts/result/ResolvedArtifactResult; public final fun getResolvedBy (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency;)Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver; public final fun setGradleArtifact (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency;Lorg/gradle/api/artifacts/result/ResolvedArtifactResult;)V public final fun setResolvedBy (Lorg/jetbrains/kotlin/gradle/idea/tcs/IdeaKotlinDependency;Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver;)V } -public final class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver$Empty : org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver { - public static final field INSTANCE Lorg/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver$Empty; - public fun resolve (Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;)Ljava/util/Set; -} - public abstract interface class org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver$WithBuildDependencies { public abstract fun dependencies (Lorg/gradle/api/Project;)Ljava/lang/Iterable; } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver.kt index fa59d368b91..01f454a7ac8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeAdditionalArtifactResolver.kt @@ -46,8 +46,11 @@ fun interface IdeAdditionalArtifactResolver { fun resolve(sourceSet: KotlinSourceSet, dependencies: Set) @ExternalKotlinTargetApi - object Empty : IdeAdditionalArtifactResolver { - override fun resolve(sourceSet: KotlinSourceSet, dependencies: Set) = Unit + companion object { + /** + * Empty [IdeAdditionalArtifactResolver] that will not resolve any artifact (noop) + */ + val empty = IdeAdditionalArtifactResolver { _, _ -> } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver.kt index 7cbb827a2f0..7ad17175ff7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeDependencyResolver.kt @@ -53,13 +53,14 @@ fun interface IdeDependencyResolver { fun dependencies(project: Project): Iterable } - @ExternalKotlinTargetApi - object Empty : IdeDependencyResolver { - override fun resolve(sourceSet: KotlinSourceSet): Set = emptySet() - } - @ExternalKotlinTargetApi companion object { + + /** + * [IdeDependencyResolver] that will just return an empty Set of dependencies (noop) + */ + val empty = IdeDependencyResolver { emptySet() } + /** * Special binaryType String that indicates that a certain dependency is only a sources.jar and * therefore should be attached as extra to the binary dependency. @@ -98,10 +99,10 @@ fun interface IdeDependencyResolver { */ @ExternalKotlinTargetApi fun IdeDependencyResolver( - resolvers: Iterable + resolvers: Iterable, ): IdeDependencyResolver { val resolversList = resolvers.filterNotNull() - if (resolversList.isEmpty()) return IdeDependencyResolver.Empty + if (resolversList.isEmpty()) return IdeDependencyResolver.empty return IdeCompositeDependencyResolver(resolversList) } @@ -113,7 +114,7 @@ fun IdeDependencyResolver( */ @ExternalKotlinTargetApi fun IdeDependencyResolver( - vararg resolvers: IdeDependencyResolver? + vararg resolvers: IdeDependencyResolver?, ): IdeDependencyResolver = IdeDependencyResolver(resolvers.toList()) @@ -138,7 +139,7 @@ operator fun IdeDependencyResolver.plus(other: IdeDependencyResolver): IdeDepend } private class IdeCompositeDependencyResolver( - val children: List + val children: List, ) : IdeDependencyResolver, IdeDependencyResolver.WithBuildDependencies { override fun resolve(sourceSet: KotlinSourceSet): Set { return children.flatMap { child -> child.resolve(sourceSet) }.toSet() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportFactory.kt index 8991ba665d2..8e6c9cd3fa0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImportFactory.kt @@ -164,21 +164,21 @@ internal fun IdeMultiplatformImport(extension: KotlinProjectExtension): IdeMulti /* Overwrite android dependencies by empty resolver */ registerDependencyResolver( - resolver = IdeDependencyResolver.Empty, + resolver = IdeDependencyResolver.empty, constraint = SourceSetConstraint.isAndroid, phase = IdeMultiplatformImport.DependencyResolutionPhase.BinaryDependencyResolution, level = IdeMultiplatformImport.DependencyResolutionLevel.Overwrite ) registerDependencyResolver( - resolver = IdeDependencyResolver.Empty, + resolver = IdeDependencyResolver.empty, constraint = SourceSetConstraint.isAndroid, phase = IdeMultiplatformImport.DependencyResolutionPhase.SourcesAndDocumentationResolution, level = IdeMultiplatformImport.DependencyResolutionLevel.Overwrite ) registerAdditionalArtifactResolver( - resolver = IdeAdditionalArtifactResolver.Empty, + resolver = IdeAdditionalArtifactResolver.empty, constraint = SourceSetConstraint.isAndroid, phase = IdeMultiplatformImport.AdditionalArtifactResolutionPhase.SourcesAndDocumentationResolution, level = IdeMultiplatformImport.AdditionalArtifactResolutionLevel.Overwrite