diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt index cd1641404eb..8708e0f6d7d 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/facet/FrameworkLibraryValidatorWithDynamicDescription.kt @@ -38,7 +38,7 @@ class FrameworkLibraryValidatorWithDynamicDescription( private val libraryCategoryName: String, private val getPlatform: () -> IdePlatform<*, *> ) : FrameworkLibraryValidator() { - private val IdePlatformKind<*>.libraryDescription: CustomLibraryDescription + private val IdePlatformKind<*>.libraryDescription: CustomLibraryDescription? get() = this.tooling.getLibraryDescription(context.module.project) private fun checkLibraryIsConfigured(platform: IdePlatformKind<*>): Boolean { @@ -49,7 +49,7 @@ class FrameworkLibraryValidatorWithDynamicDescription( it.getLibraryVersions(context.module, platform, context.rootModel).isNotEmpty() }) return true - val libraryDescription = platform.libraryDescription + val libraryDescription = platform.libraryDescription ?: return true val libraryKinds = libraryDescription.suitableLibraryKinds var found = false val presentationManager = LibraryPresentationManager.getInstance() @@ -72,7 +72,10 @@ class FrameworkLibraryValidatorWithDynamicDescription( if (checkLibraryIsConfigured(targetPlatform.kind)) { val conflictingPlatforms = IdePlatformKind.ALL_KINDS - .filter { !it.isCommon && it.name != targetPlatform.kind.name && checkLibraryIsConfigured(it) } + .filter { + !it.isCommon && it.name != targetPlatform.kind.name + && it.libraryDescription != null && checkLibraryIsConfigured(it) + } if (conflictingPlatforms.isNotEmpty()) { val platformText = conflictingPlatforms.mapTo(LinkedHashSet()) { it.name }.joinToString() @@ -82,10 +85,9 @@ class FrameworkLibraryValidatorWithDynamicDescription( return ValidationResult.OK } - return ValidationResult( IdeBundle.message("label.missed.libraries.text", libraryCategoryName), - LibrariesQuickFix(targetPlatform.kind.libraryDescription) + LibrariesQuickFix(targetPlatform.kind.libraryDescription!!) ) } diff --git a/idea/src/org/jetbrains/kotlin/idea/platform/IdePlatformKindTooling.kt b/idea/src/org/jetbrains/kotlin/idea/platform/IdePlatformKindTooling.kt index af081ed88c6..8817fe72171 100644 --- a/idea/src/org/jetbrains/kotlin/idea/platform/IdePlatformKindTooling.kt +++ b/idea/src/org/jetbrains/kotlin/idea/platform/IdePlatformKindTooling.kt @@ -32,7 +32,7 @@ abstract class IdePlatformKindTooling { abstract val gradlePlatformIds: List abstract val libraryKind: PersistentLibraryKind<*>? - abstract fun getLibraryDescription(project: Project): CustomLibraryDescription + abstract fun getLibraryDescription(project: Project): CustomLibraryDescription? abstract fun getLibraryVersionProvider(project: Project): (Library) -> String? abstract fun getTestIcon(declaration: KtNamedDeclaration, descriptor: DeclarationDescriptor): Icon?