diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiDecompiledCodeTestServiceRegistrar.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiDecompiledCodeTestServiceRegistrar.kt index 9abf56d4d73..4289fdd3b65 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiDecompiledCodeTestServiceRegistrar.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiDecompiledCodeTestServiceRegistrar.kt @@ -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) - } } } \ No newline at end of file diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiLibraryBaseTestServiceRegistrar.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiLibraryBaseTestServiceRegistrar.kt index 3f6ef16a8f1..8a33d693271 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiLibraryBaseTestServiceRegistrar.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/configurators/AnalysisApiLibraryBaseTestServiceRegistrar.kt @@ -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 diff --git a/analysis/analysis-api-standalone/analysis-api-fir-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/FirStandaloneServiceRegistrar.kt b/analysis/analysis-api-standalone/analysis-api-fir-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/FirStandaloneServiceRegistrar.kt index dc7bca83846..d0e2c0e42e2 100644 --- a/analysis/analysis-api-standalone/analysis-api-fir-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/FirStandaloneServiceRegistrar.kt +++ b/analysis/analysis-api-standalone/analysis-api-fir-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/FirStandaloneServiceRegistrar.kt @@ -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) { diff --git a/analysis/analysis-api-standalone/analysis-api-standalone-base/build.gradle.kts b/analysis/analysis-api-standalone/analysis-api-standalone-base/build.gradle.kts index 59e759a5a0c..447908b6be1 100644 --- a/analysis/analysis-api-standalone/analysis-api-standalone-base/build.gradle.kts +++ b/analysis/analysis-api-standalone/analysis-api-standalone-base/build.gradle.kts @@ -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")) diff --git a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt index e5f3a683ddc..4ea19a828ed 100644 --- a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt +++ b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/project/structure/StandaloneProjectFactory.kt @@ -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) } } } diff --git a/analysis/decompiled/decompiler-to-file-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/file/FileAttributeService.kt b/analysis/decompiled/decompiler-to-file-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/file/FileAttributeService.kt index 4b25262557e..ebc23ac4f1c 100644 --- a/analysis/decompiled/decompiler-to-file-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/file/FileAttributeService.kt +++ b/analysis/decompiled/decompiler-to-file-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/file/FileAttributeService.kt @@ -28,3 +28,16 @@ interface FileAttributeService { fun read(file: VirtualFile, id: String, readValueFun: (DataInput) -> T): CachedAttributeData? } + + +class DummyFileAttributeService : FileAttributeService { + override fun write(file: VirtualFile, id: String, value: T, writeValueFun: (DataOutput, T) -> Unit): CachedAttributeData { + return CachedAttributeData(value, 0) + } + + override fun read(file: VirtualFile, id: String, readValueFun: (DataInput) -> T): CachedAttributeData? { + return null + } +} + + diff --git a/analysis/decompiled/decompiler-to-file-stubs/tests/org/jetbrains/kotlin/analysis/decompiler/stub/files/AbstractDecompiledClassTest.kt b/analysis/decompiled/decompiler-to-file-stubs/tests/org/jetbrains/kotlin/analysis/decompiler/stub/files/AbstractDecompiledClassTest.kt index 8a685726d50..3340d39de42 100644 --- a/analysis/decompiled/decompiler-to-file-stubs/tests/org/jetbrains/kotlin/analysis/decompiler/stub/files/AbstractDecompiledClassTest.kt +++ b/analysis/decompiled/decompiler-to-file-stubs/tests/org/jetbrains/kotlin/analysis/decompiler/stub/files/AbstractDecompiledClassTest.kt @@ -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 write(file: VirtualFile, id: String, value: T, writeValueFun: (DataOutput, T) -> Unit): CachedAttributeData { - return CachedAttributeData(value, 0) - } - - override fun read(file: VirtualFile, id: String, readValueFun: (DataInput) -> T): CachedAttributeData? { - return null - } -} diff --git a/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/JvmReplIdeTest.kt b/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/JvmReplIdeTest.kt index 7d8357b2b50..1d82ddb88a2 100644 --- a/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/JvmReplIdeTest.kt +++ b/plugins/scripting/scripting-ide-services-test/test/org/jetbrains/kotlin/scripting/ide_services/JvmReplIdeTest.kt @@ -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()) } }