diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/facet/KotlinVersionInfoProvider.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/facet/KotlinVersionInfoProvider.kt index f08cf7d90d7..3f01ac8e14a 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/facet/KotlinVersionInfoProvider.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/facet/KotlinVersionInfoProvider.kt @@ -81,3 +81,21 @@ fun getRuntimeLibraryVersion(module: Module): String? { val versions = getRuntimeLibraryVersions(module, null, targetPlatform ?: TargetPlatformKind.DEFAULT_PLATFORM) return versions.toSet().singleOrNull() } + +fun getCleanRuntimeLibraryVersion(module: Module) = getRuntimeLibraryVersion(module)?.cleanUpVersion() + +private fun String.cleanUpVersion(): String { + return StringBuilder(this) + .apply { + val parIndex = indexOf("(") + if (parIndex >= 0) { + delete(parIndex, length) + } + val releaseIndex = indexOf("-release-") + if (releaseIndex >= 0) { + delete(releaseIndex, length) + } + } + .toString() + .trim() +} diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt index 1a91f0eb31c..8752fb31b98 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/inspections/AddKotlinLibQuickFix.kt @@ -27,7 +27,7 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator -import org.jetbrains.kotlin.idea.facet.getRuntimeLibraryVersion +import org.jetbrains.kotlin.idea.facet.getCleanRuntimeLibraryVersion import org.jetbrains.kotlin.idea.quickfix.KotlinQuickFixAction import org.jetbrains.kotlin.idea.quickfix.KotlinSingleIntentionActionFactory import org.jetbrains.kotlin.idea.quickfix.quickfixUtil.createIntentionForFirstParentOfType @@ -46,7 +46,7 @@ class AddReflectionQuickFix(element: KtElement) override fun getFamilyName() = text override fun getLibraryDescriptor(module: Module) = MavenExternalLibraryDescriptor("org.jetbrains.kotlin", "kotlin-reflect", - getRuntimeLibraryVersion(module) ?: bundledRuntimeVersion()) + getCleanRuntimeLibraryVersion(module) ?: bundledRuntimeVersion()) companion object : KotlinSingleIntentionActionFactory() { override fun createAction(diagnostic: Diagnostic) = diagnostic.createIntentionForFirstParentOfType(::AddReflectionQuickFix) @@ -59,7 +59,7 @@ class AddScriptRuntimeQuickFix(element: KtElement) : AddKotlinLibQuickFix(elemen override fun getLibraryDescriptor(module: Module) = MavenExternalLibraryDescriptor( "org.jetbrains.kotlin", "kotlin-script-runtime", - getRuntimeLibraryVersion(module) ?: bundledRuntimeVersion() + getCleanRuntimeLibraryVersion(module) ?: bundledRuntimeVersion() ) companion object : KotlinSingleIntentionActionFactory() { @@ -83,7 +83,7 @@ class AddTestLibQuickFix(element: KtElement) override fun getFamilyName() = text override fun getLibraryDescriptor(module: Module) = MavenExternalLibraryDescriptor("org.jetbrains.kotlin", "kotlin-test", - getRuntimeLibraryVersion(module) ?: bundledRuntimeVersion()) + getCleanRuntimeLibraryVersion(module) ?: bundledRuntimeVersion()) companion object : KotlinSingleIntentionActionFactory() { val KOTLIN_TEST_UNRESOLVED = setOf(