Simplify VirtualFileFinder and their factories' hierarchy

Since there's no JsVirtualFileFinder anymore, inline JvmVirtualFileFinder into
VirtualFileFinder and drop "Jvm" prefix everywhere
This commit is contained in:
Alexander Udalov
2017-01-31 15:44:29 +03:00
parent ee0874a26d
commit abb5bc6aba
21 changed files with 49 additions and 94 deletions
@@ -37,7 +37,7 @@ import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolver
import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl
import org.jetbrains.kotlin.load.java.sam.SamWithReceiverResolver
import org.jetbrains.kotlin.load.kotlin.DeserializationComponentsForJava
import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinderFactory
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinderFactory
import org.jetbrains.kotlin.platform.JvmBuiltIns
import org.jetbrains.kotlin.resolve.*
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver
@@ -60,7 +60,7 @@ private fun StorageComponentContainer.configureJavaTopDownAnalysis(
useImpl<JavaDescriptorResolver>()
useImpl<DeserializationComponentsForJava>()
useInstance(JvmVirtualFileFinderFactory.SERVICE.getInstance(project).create(moduleContentScope))
useInstance(VirtualFileFinderFactory.getInstance(project).create(moduleContentScope))
useImpl<FileScopeProviderImpl>()
@@ -16,15 +16,16 @@
package org.jetbrains.kotlin.load.kotlin
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.name.ClassId
interface JvmVirtualFileFinderFactory : VirtualFileFinderFactory, MetadataFinderFactory {
override fun create(scope: GlobalSearchScope): JvmVirtualFileFinder
interface VirtualFileFinder : KotlinClassFinder {
fun findVirtualFileWithHeader(classId: ClassId): VirtualFile?
object SERVICE {
@JvmStatic fun getInstance(project: Project): JvmVirtualFileFinderFactory =
ServiceManager.getService(project, JvmVirtualFileFinderFactory::class.java)
companion object SERVICE {
fun getInstance(project: Project): VirtualFileFinder =
VirtualFileFinderFactory.getInstance(project).create(GlobalSearchScope.allScope(project))
}
}
@@ -20,9 +20,11 @@ import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
interface JvmVirtualFileFinder : VirtualFileFinder, KotlinClassFinder {
object SERVICE {
@JvmStatic fun getInstance(project: Project): JvmVirtualFileFinder =
ServiceManager.getService(project, JvmVirtualFileFinderFactory::class.java).create(GlobalSearchScope.allScope(project))
interface VirtualFileFinderFactory : MetadataFinderFactory {
override fun create(scope: GlobalSearchScope): VirtualFileFinder
companion object SERVICE {
fun getInstance(project: Project): VirtualFileFinderFactory =
ServiceManager.getService(project, VirtualFileFinderFactory::class.java)
}
}
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.utils.sure
abstract class VirtualFileKotlinClassFinder : JvmVirtualFileFinder {
abstract class VirtualFileKotlinClassFinder : VirtualFileFinder {
override fun findKotlinClass(classId: ClassId): KotlinJvmBinaryClass? {
val file = findVirtualFileWithHeader(classId) ?: return null
return KotlinBinaryClassCache.getKotlinBinaryClass(file)