diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt index 5bdf88cb753..6c9d57013f9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt @@ -28,9 +28,16 @@ internal open class KotlinJsIrLinkConfig( task.dependsOn(compilation.compileTaskProvider) task.dependsOn(compilation.output.classesDirs) + // We still support Gradle 6.8 in tests + // Gradle 6.8 has a bug with verifying of not getting provider before Task execution task.entryModule.fileProvider( task.project.providers.provider { - compilation.output.classesDirs.elements.get().single().asFile + val elements = compilation.output.classesDirs.elements.get() + elements.singleOrNull()?.asFile + ?: throw IllegalStateException( + "Only one output fo compilation expected," + + "but actual: ${elements.joinToString(prefix = "[", postfix = "]") { it.toString() }}" + ) } ).disallowChanges() task.rootCacheDirectory.set(project.layout.buildDirectory.map { it.dir("klib/cache/js/${binary.name}") })