Add diagnostic for native version

#KT-62826 Verification Pending
diff --git a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
index 70dbf3c..3bec85a 100644
--- a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
+++ b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt
@@ -79,5 +79,5 @@
 // this class is ignored during classpath normalization when considering whether to recompile dependencies in Kotlin build
 private object KotlinVersionCurrentValue {
     @kotlin.jvm.JvmStatic
-    fun get(): KotlinVersion = KotlinVersion(2, 1, 255) // value is written here automatically during build
+    fun get(): KotlinVersion = KotlinVersion(2, 1, 205) // value is written here automatically during build
 }
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt
index 9660589..dd56c99 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt
@@ -25,6 +25,7 @@
 import org.jetbrains.kotlin.gradle.plugin.sources.android.multiplatformAndroidSourceSetLayoutV1
 import org.jetbrains.kotlin.gradle.plugin.sources.android.multiplatformAndroidSourceSetLayoutV2
 import org.jetbrains.kotlin.gradle.utils.prettyName
+import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion
 import org.jetbrains.kotlin.utils.addToStdlib.flatGroupBy
 import java.io.File
 
@@ -64,6 +65,14 @@
         )
     }
 
+    object NativeVersionDiagnostic : ToolingDiagnosticFactory(WARNING) {
+        operator fun invoke(nativeVersion: KotlinToolingVersion?, kotlinVersion: KotlinToolingVersion) = build(
+            "'$nativeVersion' native is being used with an older '$kotlinVersion' Kotlin. Please adjust versions to avoid incompatibilities."
+                .onlyIf(nativeVersion != null && nativeVersion > kotlinVersion)
+        )
+    }
+
+
     object DeprecatedJvmWithJavaPresetDiagnostic : ToolingDiagnosticFactory(ERROR) {
         operator fun invoke() = build(
             """
@@ -393,7 +402,7 @@
 
     abstract class JsLikeEnvironmentNotChosenExplicitly(
         private val environmentName: String,
-        private val targetType: String
+        private val targetType: String,
     ) : ToolingDiagnosticFactory(WARNING) {
         operator fun invoke(availableEnvironments: List<String>) = build(
             """
@@ -1010,7 +1019,7 @@
 
     object DeprecatedInKMPJavaPluginsDiagnostic : ToolingDiagnosticFactory(WARNING) {
         operator fun invoke(pluginId: String): ToolingDiagnostic {
-            val pluginString = when(pluginId) {
+            val pluginString = when (pluginId) {
                 "application" -> "'$pluginId' (also applies 'java' plugin)"
                 "java-library" -> "'$pluginId' (also applies 'java' plugin)"
                 else -> "'$pluginId'"
@@ -1052,7 +1061,7 @@
         )
     }
 
-    object ProjectIsolationIncompatibleWithIncludedBuildsWithOldKotlinVersion: ToolingDiagnosticFactory(WARNING) {
+    object ProjectIsolationIncompatibleWithIncludedBuildsWithOldKotlinVersion : ToolingDiagnosticFactory(WARNING) {
         operator fun invoke(dependency: String, includedProjectPath: String): ToolingDiagnostic = build(
             """
                 Dependency '$dependency' resolved into included build project '$includedProjectPath'. 
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/NativeVersionChecker.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/NativeVersionChecker.kt
new file mode 100644
index 0000000..3ed733d
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/checkers/NativeVersionChecker.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers
+
+import org.jetbrains.kotlin.gradle.internal.properties.nativeProperties
+import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectChecker
+import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinGradleProjectCheckerContext
+import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
+import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnosticsCollector
+import org.jetbrains.kotlin.gradle.plugin.kotlinToolingVersion
+import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion
+
+internal object NativeVersionChecker : KotlinGradleProjectChecker {
+    override suspend fun KotlinGradleProjectCheckerContext.runChecks(collector: KotlinToolingDiagnosticsCollector) {
+        val nativeVersion = project.nativeProperties.kotlinNativeVersion.map { KotlinToolingVersion(it) }.orNull
+        val kotlinVersion = project.kotlinToolingVersion
+        collector.report(project, KotlinToolingDiagnostics.NativeVersionDiagnostic(nativeVersion, kotlinVersion))
+    }
+}
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt
index 018b784..c86bc62 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt
@@ -170,6 +170,7 @@
         register(project, GradleDeprecatedPropertyChecker)
         register(project, OverriddenKotlinNativeHomeChecker)
         register(project, ComposePluginSuggestApplyChecker)
+        register(project, NativeVersionChecker)
 
         if (isMultiplatform) {
             register(project, MultipleSourceSetRootsInCompilationChecker)