[AA] Refactoring: Provide default implementations for functions of AnalysisApiTestServiceRegistrar

- Most inheritors of `AnalysisApiTestServiceRegistrar` only need to
  override one or two functions.
This commit is contained in:
Marco Pennekamp
2023-11-10 19:14:57 +01:00
committed by Space Team
parent df43226a08
commit 6189d68c3c
9 changed files with 10 additions and 78 deletions
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.api.fe10.test.configurator
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
import org.jetbrains.kotlin.analysis.api.descriptors.CliFe10AnalysisFacade
@@ -31,8 +30,6 @@ object AnalysisApiFe10TestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
AnalysisHandlerExtension.registerExtensionPoint(project)
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {}
@OptIn(KtAnalysisApiInternals::class)
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
project.apply {
@@ -49,6 +46,4 @@ object AnalysisApiFe10TestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
}
KotlinCoreEnvironment.registerKotlinLightClassSupport(project)
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {}
}
@@ -31,9 +31,7 @@ import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirective
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.moduleStructure
object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {}
object AnalysisApiBaseTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
@OptIn(KtAnalysisApiInternals::class)
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
project.apply {
@@ -5,22 +5,6 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiDecompiledCodeTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
}
}
object AnalysisApiDecompiledCodeTestServiceRegistrar : AnalysisApiTestServiceRegistrar()
@@ -7,7 +7,6 @@ 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
@@ -15,21 +14,10 @@ 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.test.framework.services.disposableProvider
import org.jetbrains.kotlin.analysis.decompiler.stub.file.ClsKotlinBinaryClassCache
import org.jetbrains.kotlin.analysis.decompiler.stub.file.FileAttributeService
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiLibraryBaseTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
FileTypeFileViewProviders.INSTANCE.addExplicitExtension(JavaClassFileType.INSTANCE, ClassFileViewProviderFactory())
@@ -37,6 +25,5 @@ object AnalysisApiLibraryBaseTestServiceRegistrar : AnalysisApiTestServiceRegist
registerExtension(KotlinClassFileDecompiler(), LoadingOrder.FIRST, testServices.disposableProvider.getApplicationDisposable())
registerExtension(KotlinBuiltInDecompiler(), LoadingOrder.FIRST, testServices.disposableProvider.getApplicationDisposable())
}
}
}
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptDefinitionProvider
@@ -13,16 +12,7 @@ import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionProvider
import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiScriptTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
project.registerService(ScriptDefinitionProvider::class.java, CliScriptDefinitionProvider())
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
}
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.api.standalone.fir.test
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
@@ -24,9 +23,6 @@ import org.jetbrains.kotlin.test.services.TestServices
@OptIn(KtAnalysisApiInternals::class)
public object StandaloneModeTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
project.apply {
registerService(KtLifetimeTokenProvider::class.java, KtAlwaysAccessibleLifetimeTokenProvider::class.java)
@@ -51,7 +47,4 @@ public object StandaloneModeTestServiceRegistrar : AnalysisApiTestServiceRegistr
)
}
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
}
}
}
@@ -10,11 +10,11 @@ import com.intellij.mock.MockProject
import org.jetbrains.kotlin.test.services.TestServices
abstract class AnalysisApiTestServiceRegistrar {
abstract fun registerApplicationServices(application: MockApplication, testServices: TestServices)
open fun registerApplicationServices(application: MockApplication, testServices: TestServices) {}
abstract fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices)
open fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {}
abstract fun registerProjectServices(project: MockProject, testServices: TestServices)
open fun registerProjectServices(project: MockProject, testServices: TestServices) {}
abstract fun registerProjectModelServices(project: MockProject, testServices: TestServices)
}
open fun registerProjectModelServices(project: MockProject, testServices: TestServices) {}
}
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.resolve
import com.intellij.lang.java.JavaLanguage
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import com.intellij.openapi.project.Project
import com.intellij.psi.*
@@ -66,10 +65,6 @@ private object ErrorResistanceConfigurator : AnalysisApiFirSourceTestConfigurato
}
private object ErrorResistanceServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {}
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {}
@OptIn(TestInfrastructureInternals::class)
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
with(PsiElementFinder.EP.getPoint(project)) {
@@ -5,25 +5,15 @@
package org.jetbrains.kotlin.light.classes.symbol.decompiled.test.configurators
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiSymbolLightClassesDecompiledTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
project.apply {
registerService(ClsJavaStubByVirtualFileCache::class.java)
}
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
}
}
}