[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 package org.jetbrains.kotlin.analysis.api.fe10.test.configurator
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
import org.jetbrains.kotlin.analysis.api.descriptors.CliFe10AnalysisFacade import org.jetbrains.kotlin.analysis.api.descriptors.CliFe10AnalysisFacade
@@ -31,8 +30,6 @@ object AnalysisApiFe10TestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
AnalysisHandlerExtension.registerExtensionPoint(project) AnalysisHandlerExtension.registerExtensionPoint(project)
} }
override fun registerProjectServices(project: MockProject, testServices: TestServices) {}
@OptIn(KtAnalysisApiInternals::class) @OptIn(KtAnalysisApiInternals::class)
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) { override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
project.apply { project.apply {
@@ -49,6 +46,4 @@ object AnalysisApiFe10TestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
} }
KotlinCoreEnvironment.registerKotlinLightClassSupport(project) 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.TestServices
import org.jetbrains.kotlin.test.services.moduleStructure import org.jetbrains.kotlin.test.services.moduleStructure
object AnalysisApiBaseTestServiceRegistrar: AnalysisApiTestServiceRegistrar() { object AnalysisApiBaseTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {}
@OptIn(KtAnalysisApiInternals::class) @OptIn(KtAnalysisApiInternals::class)
override fun registerProjectServices(project: MockProject, testServices: TestServices) { override fun registerProjectServices(project: MockProject, testServices: TestServices) {
project.apply { project.apply {
@@ -5,22 +5,6 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators 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.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiDecompiledCodeTestServiceRegistrar : AnalysisApiTestServiceRegistrar()
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) {
}
}
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators
import com.intellij.ide.highlighter.JavaClassFileType import com.intellij.ide.highlighter.JavaClassFileType
import com.intellij.mock.MockApplication import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import com.intellij.openapi.extensions.LoadingOrder import com.intellij.openapi.extensions.LoadingOrder
import com.intellij.psi.ClassFileViewProviderFactory import com.intellij.psi.ClassFileViewProviderFactory
import com.intellij.psi.FileTypeFileViewProviders 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.KotlinBuiltInDecompiler
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinClassFileDecompiler import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinClassFileDecompiler
import org.jetbrains.kotlin.analysis.test.framework.services.disposableProvider 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.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiLibraryBaseTestServiceRegistrar : AnalysisApiTestServiceRegistrar() { 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) { override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
FileTypeFileViewProviders.INSTANCE.addExplicitExtension(JavaClassFileType.INSTANCE, ClassFileViewProviderFactory()) FileTypeFileViewProviders.INSTANCE.addExplicitExtension(JavaClassFileType.INSTANCE, ClassFileViewProviderFactory())
@@ -37,6 +25,5 @@ object AnalysisApiLibraryBaseTestServiceRegistrar : AnalysisApiTestServiceRegist
registerExtension(KotlinClassFileDecompiler(), LoadingOrder.FIRST, testServices.disposableProvider.getApplicationDisposable()) registerExtension(KotlinClassFileDecompiler(), LoadingOrder.FIRST, testServices.disposableProvider.getApplicationDisposable())
registerExtension(KotlinBuiltInDecompiler(), 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 package org.jetbrains.kotlin.analysis.api.impl.base.test.configurators
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.scripting.compiler.plugin.definitions.CliScriptDefinitionProvider 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 import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiScriptTestServiceRegistrar : AnalysisApiTestServiceRegistrar() { object AnalysisApiScriptTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) { override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
project.registerService(ScriptDefinitionProvider::class.java, CliScriptDefinitionProvider()) 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 package org.jetbrains.kotlin.analysis.api.standalone.fir.test
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
@@ -24,9 +23,6 @@ import org.jetbrains.kotlin.test.services.TestServices
@OptIn(KtAnalysisApiInternals::class) @OptIn(KtAnalysisApiInternals::class)
public object StandaloneModeTestServiceRegistrar : AnalysisApiTestServiceRegistrar() { public object StandaloneModeTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) { override fun registerProjectServices(project: MockProject, testServices: TestServices) {
project.apply { project.apply {
registerService(KtLifetimeTokenProvider::class.java, KtAlwaysAccessibleLifetimeTokenProvider::class.java) 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 import org.jetbrains.kotlin.test.services.TestServices
abstract class AnalysisApiTestServiceRegistrar { 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 package org.jetbrains.kotlin.analysis.low.level.api.fir.resolve
import com.intellij.lang.java.JavaLanguage import com.intellij.lang.java.JavaLanguage
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import com.intellij.openapi.project.Project import com.intellij.openapi.project.Project
import com.intellij.psi.* import com.intellij.psi.*
@@ -66,10 +65,6 @@ private object ErrorResistanceConfigurator : AnalysisApiFirSourceTestConfigurato
} }
private object ErrorResistanceServiceRegistrar : AnalysisApiTestServiceRegistrar() { 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) @OptIn(TestInfrastructureInternals::class)
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) { override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
with(PsiElementFinder.EP.getPoint(project)) { with(PsiElementFinder.EP.getPoint(project)) {
@@ -5,25 +5,15 @@
package org.jetbrains.kotlin.light.classes.symbol.decompiled.test.configurators package org.jetbrains.kotlin.light.classes.symbol.decompiled.test.configurators
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject import com.intellij.mock.MockProject
import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.TestServices
object AnalysisApiSymbolLightClassesDecompiledTestServiceRegistrar : AnalysisApiTestServiceRegistrar() { object AnalysisApiSymbolLightClassesDecompiledTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerProjectExtensionPoints(project: MockProject, testServices: TestServices) {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {}
override fun registerProjectModelServices(project: MockProject, testServices: TestServices) { override fun registerProjectModelServices(project: MockProject, testServices: TestServices) {
project.apply { project.apply {
registerService(ClsJavaStubByVirtualFileCache::class.java) registerService(ClsJavaStubByVirtualFileCache::class.java)
} }
} }
}
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
}
}