[Analysis API] move ClsKotlinBinaryClassCache/FileAttributeService service registration to StandaloneProjectFactory

This commit is contained in:
Ilya Kirillov
2023-05-15 13:39:35 +02:00
committed by Space Team
parent fbcf73eb42
commit 78f09409b7
8 changed files with 27 additions and 30 deletions
@@ -5,22 +5,10 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators
import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import com.intellij.openapi.extensions.LoadingOrder
import com.intellij.psi.ClassFileViewProviderFactory
import com.intellij.psi.FileTypeFileViewProviders
import com.intellij.psi.compiled.ClassFileDecompilers
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInDecompiler
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinClassFileDecompiler
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
import org.jetbrains.kotlin.analysis.decompiler.stub.file.FileAttributeService
import org.jetbrains.kotlin.analysis.decompiler.stub.files.DummyFileAttributeService
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.TestInfrastructureInternals
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.analysis.test.framework.services.disposableProvider
object AnalysisApiDecompiledCodeTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
@@ -34,9 +22,5 @@ object AnalysisApiDecompiledCodeTestServiceRegistrar : AnalysisApiTestServiceReg
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
application.apply {
registerService(ClsKotlinBinaryClassCache::class.java)
registerService(FileAttributeService::class.java, DummyFileAttributeService)
}
}
}
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInDecompiler
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinClassFileDecompiler
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
import org.jetbrains.kotlin.analysis.decompiler.stub.file.FileAttributeService
import org.jetbrains.kotlin.analysis.decompiler.stub.files.DummyFileAttributeService
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.TestInfrastructureInternals
import org.jetbrains.kotlin.test.services.TestServices
@@ -34,6 +34,9 @@ import org.jetbrains.kotlin.light.classes.symbol.SymbolKotlinAsJavaSupport
@OptIn(LLFirInternals::class, KtAnalysisApiInternals::class)
object FirStandaloneServiceRegistrar : AnalysisApiStandaloneServiceRegistrar {
override fun registerApplicationServices(application: MockApplication) {
application.apply {
}
}
override fun registerProjectExtensionPoints(project: MockProject) {
@@ -8,6 +8,7 @@ dependencies {
implementation(kotlinStdlib())
implementation(project(":compiler:psi"))
implementation(project(":analysis:analysis-api-impl-base"))
implementation(project(":analysis:decompiled:decompiler-to-file-stubs"))
api(project(":compiler:cli-base"))
api(project(":analysis:analysis-api"))
api(project(":analysis:analysis-api-impl-base"))
@@ -29,6 +29,9 @@ import com.intellij.util.io.URLUtil.JAR_SEPARATOR
import org.jetbrains.kotlin.analysis.api.impl.base.references.HLApiReferenceProviderService
import org.jetbrains.kotlin.analysis.api.impl.base.java.source.JavaElementSourceWithSmartPointerFactory
import org.jetbrains.kotlin.analysis.api.resolve.extensions.KtResolveExtensionProvider
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
import org.jetbrains.kotlin.analysis.decompiler.stub.file.DummyFileAttributeService
import org.jetbrains.kotlin.analysis.decompiler.stub.file.FileAttributeService
import org.jetbrains.kotlin.analysis.project.structure.*
import org.jetbrains.kotlin.analysis.providers.impl.KotlinFakeClsStubsCache
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
@@ -82,7 +85,9 @@ object StandaloneProjectFactory {
return
}
application.apply {
registerService(KotlinFakeClsStubsCache::class.java, KotlinFakeClsStubsCache())
registerService(KotlinFakeClsStubsCache::class.java, KotlinFakeClsStubsCache::class.java)
registerService(ClsKotlinBinaryClassCache::class.java)
registerService(FileAttributeService::class.java, DummyFileAttributeService::class.java)
}
}
}
@@ -28,3 +28,16 @@ interface FileAttributeService {
fun <T> read(file: VirtualFile, id: String, readValueFun: (DataInput) -> T): CachedAttributeData<T>?
}
class DummyFileAttributeService : FileAttributeService {
override fun <T> write(file: VirtualFile, id: String, value: T, writeValueFun: (DataOutput, T) -> Unit): CachedAttributeData<T> {
return CachedAttributeData(value, 0)
}
override fun <T> read(file: VirtualFile, id: String, readValueFun: (DataInput) -> T): CachedAttributeData<T>? {
return null
}
}
@@ -11,6 +11,7 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import org.jetbrains.kotlin.analysis.decompiler.stub.file.CachedAttributeData
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
import org.jetbrains.kotlin.analysis.decompiler.stub.file.DummyFileAttributeService
import org.jetbrains.kotlin.analysis.decompiler.stub.file.FileAttributeService
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.test.*
@@ -42,7 +43,7 @@ abstract class AbstractDecompiledClassTest : KotlinTestWithEnvironment() {
private fun CoreApplicationEnvironment.registerApplicationServices() {
if (application.getService(FileAttributeService::class.java) == null) {
registerApplicationService(FileAttributeService::class.java, DummyFileAttributeService)
registerApplicationService(FileAttributeService::class.java, DummyFileAttributeService())
registerApplicationService(ClsKotlinBinaryClassCache::class.java, ClsKotlinBinaryClassCache())
}
}
@@ -112,12 +113,3 @@ internal data class TestData(
}
}
object DummyFileAttributeService : FileAttributeService {
override fun <T> write(file: VirtualFile, id: String, value: T, writeValueFun: (DataOutput, T) -> Unit): CachedAttributeData<T> {
return CachedAttributeData(value, 0)
}
override fun <T> read(file: VirtualFile, id: String, readValueFun: (DataInput) -> T): CachedAttributeData<T>? {
return null
}
}
@@ -12,8 +12,8 @@ import com.intellij.util.indexing.FileContentImpl
import junit.framework.TestCase
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinClassFileDecompiler
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
import org.jetbrains.kotlin.analysis.decompiler.stub.file.DummyFileAttributeService
import org.jetbrains.kotlin.analysis.decompiler.stub.file.FileAttributeService
import org.jetbrains.kotlin.analysis.decompiler.stub.files.DummyFileAttributeService
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.psi.stubs.KotlinClassStub
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.KJvmCompiledModuleInMemoryImpl
@@ -68,7 +68,7 @@ class JvmReplIdeTest : TestCase() {
}
private fun registerDecompilerServices(application: MockApplication) {
application.registerService(FileAttributeService::class.java, DummyFileAttributeService)
application.registerService(FileAttributeService::class.java, DummyFileAttributeService())
application.registerService(ClsKotlinBinaryClassCache::class.java, ClsKotlinBinaryClassCache())
}
}