[kotlin] KTIJ-38940 Fix kotlin-reflect version added by the quick-fix in Maven and JPS projects

`AddReflectionQuickFixFactory` determines the version of `kotlin-reflect` through `KotlinLibraryVersionProvider`. This works correctly for Gradle via `KotlinGradlePluginLibraryVersionProvider`, but fails for Maven and JPS projects because `DefaultKotlinLibraryVersionProvider` only provides versions for `kotlinx-coroutines-core`, `kotlinx-datetime`, and `kotlinx-serialization-json`.

Unlike these libraries, `kotlin-reflect` always uses the same version as the Kotlin compiler and therefore does not require a dedicated version mapping. As a result, `DefaultKotlinLibraryVersionProvider` returns `null`, causing `AddReflectionQuickFixFactory` to fall back to `KotlinPluginLayout.standaloneCompilerVersion.artifactVersion` instead of using the project's Kotlin version.

This change makes `AddReflectionQuickFixFactory` use the project's Kotlin version when adding the `kotlin-reflect` dependency in Maven and JPS projects.

(cherry picked from commit 80f489bb40569589ffe1c028e4d5da92aa61e7e7)

IJ-CR-214534

GitOrigin-RevId: c74cd8abdab362f9bc1588c6df080c627d760d71
This commit is contained in:
Andrey Cherkasov
2026-09-01 23:49:16 +00:00
committed by intellij-monorepo-bot
parent ab14c33387
commit a35ded787d
2 changed files with 3 additions and 5 deletions
@@ -10,9 +10,9 @@ import org.jetbrains.kotlin.idea.base.util.module
import org.jetbrains.kotlin.idea.codeinsight.api.applicators.fixes.KotlinQuickFixFactory
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinPluginLayout
import org.jetbrains.kotlin.idea.configuration.KotlinBuildSystemDependencyManager
import org.jetbrains.kotlin.idea.configuration.KotlinLibraryVersionProvider
import org.jetbrains.kotlin.idea.configuration.isProjectSyncPendingOrInProgress
import org.jetbrains.kotlin.idea.configuration.withScope
import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion
import org.jetbrains.kotlin.idea.inspections.libraries.AddKotlinLibraryQuickFix
internal object AddReflectionQuickFixFactory {
@@ -27,9 +27,7 @@ internal object AddReflectionQuickFixFactory {
?: return@ModCommandBased emptyList()
if (dependencyManager.isProjectSyncPendingOrInProgress()) return@ModCommandBased emptyList()
val version = KotlinLibraryVersionProvider.EP_NAME.extensionList.firstNotNullOfOrNull {
it.getVersion(module, GROUP_ID, ARTIFACT_ID)
} ?: KotlinPluginLayout.standaloneCompilerVersion.artifactVersion
val version = (getRuntimeLibraryVersion(module) ?: KotlinPluginLayout.standaloneCompilerVersion).artifactVersion
val virtualFile = element.containingFile.virtualFile
val scope = if (virtualFile != null && ProjectFileIndex.getInstance(module.project).isInTestSourceContent(virtualFile)) {
@@ -25,7 +25,7 @@
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>2.3.20</version>
<version>2.1.0</version>
</dependency>
</dependencies>