From 2844d48f9f06cf18a5f2cfc0172aaf3f4c6958f6 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Wed, 10 Apr 2019 15:05:43 +0300 Subject: [PATCH] Refactoring: remove unused class --- .../idea/caches/project/ScriptModuleInfos.kt | 6 --- .../KotlinScriptDependenciesClassFinder.kt | 43 +++---------------- 2 files changed, 7 insertions(+), 42 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt index ecf006455eb..3dea254ead7 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/ScriptModuleInfos.kt @@ -23,12 +23,6 @@ import org.jetbrains.kotlin.script.KotlinScriptDefinition import java.io.File import kotlin.script.experimental.dependencies.ScriptDependencies -class ScriptModuleSearchScope(val scriptFile: VirtualFile, baseScope: GlobalSearchScope) : DelegatingGlobalSearchScope(baseScope) { - override fun equals(other: Any?) = other is ScriptModuleSearchScope && scriptFile == other.scriptFile && super.equals(other) - - override fun hashCode() = scriptFile.hashCode() * 73 * super.hashCode() -} - data class ScriptModuleInfo( val project: Project, val scriptFile: VirtualFile, diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt index a7f2e745034..e725fd943d1 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt @@ -18,15 +18,11 @@ package org.jetbrains.kotlin.idea.core.script import com.intellij.openapi.project.Project import com.intellij.openapi.roots.ProjectFileIndex -import com.intellij.openapi.roots.impl.PackageDirectoryCache import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.NonClasspathClassFinder import com.intellij.psi.PsiClass import com.intellij.psi.search.EverythingGlobalScope import com.intellij.psi.search.GlobalSearchScope -import com.intellij.util.containers.ConcurrentFactoryMap -import org.jetbrains.kotlin.idea.caches.project.ScriptModuleSearchScope -import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder import org.jetbrains.kotlin.resolve.jvm.KotlinSafeClassFinder @@ -35,27 +31,8 @@ class KotlinScriptDependenciesClassFinder( private val scriptDependenciesManager: ScriptDependenciesManager ) : NonClasspathClassFinder(project), KotlinSafeClassFinder { - private val myCaches by lazy { - ConcurrentFactoryMap.createMap { file -> - val scriptClasspath = scriptDependenciesManager.getScriptClasspath(file) - createCache(scriptClasspath) - } - } - override fun calcClassRoots(): List = scriptDependenciesManager.getAllScriptsClasspath().toList() - override fun getCache(scope: GlobalSearchScope?): PackageDirectoryCache = - (scope as? ScriptModuleSearchScope - ?: (scope as? AbstractJavaClassFinder.FilterOutKotlinSourceFilesScope)?.base as? ScriptModuleSearchScope - )?.let { - myCaches[it.scriptFile] - } ?: super.getCache(scope) - - override fun clearCache() { - super.clearCache() - myCaches.clear() - } - override fun findClass(qualifiedName: String, scope: GlobalSearchScope): PsiClass? { tailrec fun findClassInner(parentQualifier: String, inners: List = emptyList()): PsiClass? { if (parentQualifier.isEmpty()) return null @@ -75,20 +52,14 @@ class KotlinScriptDependenciesClassFinder( } return findClassInner(qualifiedName)?.let { aClass -> - when { - scope is ScriptModuleSearchScope || - (scope as? AbstractJavaClassFinder.FilterOutKotlinSourceFilesScope)?.base is ScriptModuleSearchScope || - scope is EverythingGlobalScope || - aClass.containingFile?.virtualFile.let { file -> - file != null && - with(ProjectFileIndex.SERVICE.getInstance(myProject)) { - !isInContent(file) && - !isInLibraryClasses(file) && - !isInLibrarySource(file) - } - } -> aClass - else -> null + if (scope is EverythingGlobalScope) return aClass + + val file = aClass.containingFile?.virtualFile ?: return null + val index = ProjectFileIndex.SERVICE.getInstance(myProject) + if (index.isInContent(file) || index.isInLibraryClasses(file) || index.isInLibrarySource(file)) { + return null } + return aClass } } } \ No newline at end of file