[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

(cherry picked from commit 25668ddd0154582a4930675745e302dd87b20dca)
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 4a6d2e3..a22dc45 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.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 @@
         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 0fe63d5..9d0453b 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 @@
  */
 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")