KotlinNativeModuleConfigurator: fix INRE

#EA-219416 Fixed
This commit is contained in:
Dmitry Gridin
2019-12-04 14:23:09 +07:00
parent 86f9253fa0
commit 09bcfab047
@@ -11,16 +11,13 @@ import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.ide.konan.index.KotlinNativeMetaFileIndex import org.jetbrains.kotlin.ide.konan.index.KotlinNativeMetaFileIndex
import org.jetbrains.kotlin.idea.configuration.LibraryKindSearchScope import org.jetbrains.kotlin.idea.configuration.LibraryKindSearchScope
import org.jetbrains.kotlin.idea.configuration.hasKotlinFilesOnlyInTests import org.jetbrains.kotlin.idea.configuration.hasKotlinFilesOnlyInTests
import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode
import org.jetbrains.kotlin.idea.util.runWithAlternativeResolveEnabled
import org.jetbrains.kotlin.idea.vfilefinder.hasSomethingInPackage import org.jetbrains.kotlin.idea.vfilefinder.hasSomethingInPackage
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
fun hasKotlinNativeRuntimeInScope(module: Module): Boolean { fun hasKotlinNativeRuntimeInScope(module: Module): Boolean = module.project.runReadActionInSmartMode {
return runReadAction { val scope = module.getModuleWithDependenciesAndLibrariesScope(hasKotlinFilesOnlyInTests(module))
val scope = module.getModuleWithDependenciesAndLibrariesScope(hasKotlinFilesOnlyInTests(module)) hasKotlinNativeMetadataFile(module.project, LibraryKindSearchScope(module, scope, NativeLibraryKind))
hasKotlinNativeMetadataFile(module.project, LibraryKindSearchScope(module, scope, NativeLibraryKind))
}
} }
private val KOTLIN_NATIVE_FQ_NAMES = listOf( private val KOTLIN_NATIVE_FQ_NAMES = listOf(
@@ -28,10 +25,6 @@ private val KOTLIN_NATIVE_FQ_NAMES = listOf(
"konan.native" // Keep "konan.native" for backward compatibility with older versions of Kotlin/Native. "konan.native" // Keep "konan.native" for backward compatibility with older versions of Kotlin/Native.
).map { FqName(it) } ).map { FqName(it) }
fun hasKotlinNativeMetadataFile(project: Project, scope: GlobalSearchScope): Boolean { fun hasKotlinNativeMetadataFile(project: Project, scope: GlobalSearchScope): Boolean = project.runReadActionInSmartMode {
return runReadAction { KOTLIN_NATIVE_FQ_NAMES.any { KotlinNativeMetaFileIndex.hasSomethingInPackage(it, scope) }
project.runWithAlternativeResolveEnabled {
KOTLIN_NATIVE_FQ_NAMES.any { KotlinNativeMetaFileIndex.hasSomethingInPackage(it, scope) }
}
}
} }