From 25668ddd0154582a4930675745e302dd87b20dca Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Fri, 27 Jan 2023 12:00:16 +0200 Subject: [PATCH] [MPP] Do not postpone warning reporting for HMPP props to afterEvaluate The check itself happens during application time, remove the health check wrapper for reporting to make the code more clear. One downside is that the warning could be reported on misconfigured projects, but it's a minor inconvenience. KT-55891 --- .../plugin/mpp/internal/deprecationDiagnostics.kt | 10 +++------- .../gradle/utils/runProjectConfigurationHealthCheck.kt | 5 +---- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/deprecationDiagnostics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/deprecationDiagnostics.kt index 4a6d2e39661..a22dc452f3d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/deprecationDiagnostics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/internal/deprecationDiagnostics.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLI import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.gradle.plugin.whenEvaluated import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild -import org.jetbrains.kotlin.gradle.utils.hasSyncErrors +import org.jetbrains.kotlin.gradle.utils.runProjectConfigurationHealthCheck import org.jetbrains.kotlin.gradle.utils.runProjectConfigurationHealthCheckWhenEvaluated import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.tooling.core.UnsafeApi @@ -49,12 +49,8 @@ internal fun checkAndReportDeprecatedMppProperties(project: Project) { projectProperties.property(propertyName)?.let { getMppDeprecationWarningMessageForProperty(propertyName) } } - project.whenEvaluated { - if (!project.hasSyncErrors()) { - warnings.forEach { message -> - SingleWarningPerBuild.show(project, message) - } - } + warnings.forEach { message -> + SingleWarningPerBuild.show(project, message) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/runProjectConfigurationHealthCheck.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/runProjectConfigurationHealthCheck.kt index 0fe63d531e8..9d0453b17fb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/runProjectConfigurationHealthCheck.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/runProjectConfigurationHealthCheck.kt @@ -60,16 +60,13 @@ import org.jetbrains.kotlin.gradle.plugin.whenEvaluated */ internal inline fun Project.runProjectConfigurationHealthCheck(check: Project.() -> Unit) { /* Running configuration checks on a failed project will only lead to false positive error messages */ - if (project.hasSyncErrors()) { + if (state.failure != null || (inLenientMode() && syncExceptionsAreNotEmpty())) { return } check() } -internal fun Project.hasSyncErrors(): Boolean = - state.failure != null || (inLenientMode() && syncExceptionsAreNotEmpty()) - // ClassPathModeExceptionCollector is available only via 'gradleKotlinDsl()' dependency which brings in full Gradle jar private fun Project.syncExceptionsAreNotEmpty(): Boolean { val classPathModeExceptionCollectionClass = Class.forName("org.gradle.kotlin.dsl.provider.ClassPathModeExceptionCollector")