diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 8e66930930f..af2b9ceacf0 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -163,12 +163,7 @@ internal abstract class KotlinSourceSetProcessor>( // that has a name composed as 'Classes`, where the IDE module name is the default source set name: val expectedClassesTaskName = "${kotlinCompilation.defaultSourceSetName}Classes" project.tasks.run { - var shouldCreateTask = false - try { - named(expectedClassesTaskName) - } catch (e: UnknownDomainObjectException) { - shouldCreateTask = true - } + val shouldCreateTask = expectedClassesTaskName !in names if (shouldCreateTask) { project.registerTask(expectedClassesTaskName, IDEClassesTask::class.java) { it.dependsOn(getByName(kotlinCompilation.compileAllTaskName)) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt index 259a356197e..6773c645e6b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/syncKotlinAndAndroidSourceSets.kt @@ -105,7 +105,7 @@ private fun syncKotlinAndAndroidResources( val project = target.project - androidSourceSet.resources.srcDirs(*kotlinSourceSet.resources.srcDirs.toList().toTypedArray()) + androidSourceSet.resources.srcDirs(kotlinSourceSet.resources.srcDirs) if (androidSourceSet.resources.srcDirs.isNotEmpty()) { androidSourceSet.resources.srcDir(defaultSourceFolder(project, kotlinSourceSet.name, "resources")) kotlinSourceSet.resources.srcDirs(androidSourceSet.resources.srcDirs) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt index 661f98747b8..dce3ca38608 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/KotlinSourceSetFactory.kt @@ -100,7 +100,7 @@ internal class DefaultKotlinSourceSetFactory( attributes.attribute(Usage.USAGE_ATTRIBUTE, project.usageByName(KotlinUsages.KOTLIN_METADATA)) } - project.whenEvaluated { + project.afterEvaluate { setJsCompilerIfNecessary(sourceSet, this@apply) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt index 15164bb1a0a..7c0413c0521 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt @@ -127,13 +127,14 @@ class KotlinBuildStatHandler { } } } + val taskNames = project.tasks.names sessionLogger.report(NumericalMetrics.NUMBER_OF_SUBPROJECTS, 1) sessionLogger.report(BooleanMetrics.KOTLIN_KTS_USED, project.buildscript.sourceFile?.name?.endsWith(".kts") ?: false) - sessionLogger.report(NumericalMetrics.GRADLE_NUMBER_OF_TASKS, project.tasks.names.size.toLong()) + sessionLogger.report(NumericalMetrics.GRADLE_NUMBER_OF_TASKS, taskNames.size.toLong()) sessionLogger.report( NumericalMetrics.GRADLE_NUMBER_OF_UNCONFIGURED_TASKS, - project.tasks.names.count { name -> + taskNames.count { name -> try { project.tasks.named(name).javaClass.name.contains("TaskCreatingProvider") } catch (_: Exception) {