[FIR IDE] Move test file analysis in FE10 Analysis API implementation to FrontendApiTestConfiguratorService

This commit is contained in:
Yan Zhulanow
2021-10-19 22:49:27 +09:00
committed by teamcityserver
parent a1280ed723
commit 8f39640237
27 changed files with 36 additions and 129 deletions
@@ -7,16 +7,8 @@ package org.jetbrains.kotlin.analysis.api.descriptors.test
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.AbstractReferenceResolveTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10ReferenceResolveTest : AbstractReferenceResolveTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
analyzeTestFiles(ktFiles, module, testServices)
super.doTestByFileStructure(ktFiles, module, testServices)
}
}
@@ -7,16 +7,8 @@ package org.jetbrains.kotlin.analysis.api.descriptors.test
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.fir.AbstractResolveCallTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10ResolveCallTest : AbstractResolveCallTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
analyzeTestFiles(ktFiles, module, testServices)
super.doTestByFileStructure(ktFiles, module, testServices)
}
}
@@ -49,12 +49,12 @@ object KtFe10FrontendApiTestConfiguratorService : FrontendApiTestConfiguratorSer
application.registerService(KotlinReferenceProviderContributor::class.java, KtFe10KotlinReferenceProviderContributor::class.java)
}
}
}
fun analyzeTestFiles(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
val project = compilerConfigurationProvider.getProject(module)
val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module)
val packageProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(module)
JvmResolveUtil.analyze(project, ktFiles, compilerConfiguration, packageProviderFactory)
override fun prepareTestFiles(files: List<KtFile>, module: TestModule, testServices: TestServices) {
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
val project = compilerConfigurationProvider.getProject(module)
val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(module)
val packageProviderFactory = compilerConfigurationProvider.getPackagePartProviderFactory(module)
JvmResolveUtil.analyze(project, files, compilerConfiguration, packageProviderFactory)
}
}
@@ -6,19 +6,10 @@
package org.jetbrains.kotlin.analysis.api.descriptors.test.components
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.components.AbstractExpectedExpressionTypeTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10ExpectedExpressionTypeTest : AbstractExpectedExpressionTypeTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
}
@@ -6,19 +6,10 @@
package org.jetbrains.kotlin.analysis.api.descriptors.test.components
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.components.AbstractHLExpressionTypeTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10HLExpressionTypeTest : AbstractHLExpressionTypeTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
}
@@ -6,19 +6,10 @@
package org.jetbrains.kotlin.analysis.api.descriptors.test.components
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.components.AbstractHasCommonSubtypeTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10HasCommonSubtypeTest : AbstractHasCommonSubtypeTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
}
@@ -6,19 +6,10 @@
package org.jetbrains.kotlin.analysis.api.descriptors.test.components
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.components.AbstractOverriddenDeclarationProviderTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10OverriddenDeclarationProviderTest : AbstractOverriddenDeclarationProviderTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
analyzeTestFiles(ktFiles, module, testServices)
super.doTestByFileStructure(ktFiles, module, testServices)
}
}
@@ -6,19 +6,10 @@
package org.jetbrains.kotlin.analysis.api.descriptors.test.components
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.components.AbstractRendererTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10RendererTest : AbstractRendererTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
}
@@ -6,19 +6,10 @@
package org.jetbrains.kotlin.analysis.api.descriptors.test.scopes
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.scopes.AbstractFileScopeTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10FileScopeTest : AbstractFileScopeTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
}
@@ -7,22 +7,14 @@ package org.jetbrains.kotlin.analysis.api.descriptors.test.scopes
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10TestWithOutOfBlockModification
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.scopes.AbstractMemberScopeByFqNameTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10MemberScopeByFqNameTest : AbstractMemberScopeByFqNameTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
override fun doOutOfBlockModification(ktFile: KtFile) {
KtFe10TestWithOutOfBlockModification.doOutOfBlockModification(ktFile)
}
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.analysis.api.descriptors.test.symbols
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.components.AbstractCompileTimeConstantEvaluatorTest
import org.jetbrains.kotlin.psi.KtFile
@@ -16,9 +15,4 @@ import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10CompileTimeConstantEvaluatorTest : AbstractCompileTimeConstantEvaluatorTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
}
@@ -7,22 +7,14 @@ package org.jetbrains.kotlin.analysis.api.descriptors.test.symbols
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10TestWithOutOfBlockModification
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.AbstractSymbolByFqNameTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10SymbolByFqNameTest : AbstractSymbolByFqNameTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
override fun doOutOfBlockModification(ktFile: KtFile) {
KtFe10TestWithOutOfBlockModification.doOutOfBlockModification(ktFile)
}
@@ -7,22 +7,14 @@ package org.jetbrains.kotlin.analysis.api.descriptors.test.symbols
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10TestWithOutOfBlockModification
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.AbstractSymbolByPsiTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10SymbolByPsiTest : AbstractSymbolByPsiTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
override fun doOutOfBlockModification(ktFile: KtFile) {
KtFe10TestWithOutOfBlockModification.doOutOfBlockModification(ktFile)
}
@@ -7,22 +7,14 @@ package org.jetbrains.kotlin.analysis.api.descriptors.test.symbols
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.descriptors.test.KtFe10TestWithOutOfBlockModification
import org.jetbrains.kotlin.analysis.api.descriptors.test.analyzeTestFiles
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.impl.base.test.symbols.AbstractSymbolByReferenceTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractKtFe10SymbolByReferenceTest : AbstractSymbolByReferenceTest() {
override val configurator: FrontendApiTestConfiguratorService
get() = KtFe10FrontendApiTestConfiguratorService
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
analyzeTestFiles(listOf(ktFile), module, testServices)
super.doTestByFileStructure(ktFile, module, testServices)
}
override fun doOutOfBlockModification(ktFile: KtFile) {
KtFe10TestWithOutOfBlockModification.doOutOfBlockModification(ktFile)
}
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirective
import org.jetbrains.kotlin.test.model.DependencyKind
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.model.ResultingArtifact
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
import org.jetbrains.kotlin.test.services.*
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
@@ -46,6 +47,8 @@ interface FrontendApiTestConfiguratorService {
fun registerProjectServices(project: MockProject)
fun registerApplicationServices(application: MockApplication)
fun prepareTestFiles(files: List<KtFile>, module: TestModule, testServices: TestServices) {}
}
abstract class AbstractFrontendApiTest : TestWithDisposable() {
@@ -39,6 +39,8 @@ abstract class AbstractReferenceResolveTest : AbstractHLApiSingleModuleTest() {
}
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFiles, module, testServices)
val mainKtFile = ktFiles.singleOrNull() ?: ktFiles.first { it.name == "main.kt" }
val caretPosition = testServices.expressionMarkerProvider.getCaretPosition(mainKtFile)
val ktReferences = findReferencesAtCaret(mainKtFile, caretPosition)
@@ -17,6 +17,8 @@ import org.jetbrains.kotlin.test.services.assertions
abstract class AbstractCompileTimeConstantEvaluatorTest : AbstractHLApiSingleFileTest() {
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFile, module, testServices)
val element = testServices.expressionMarkerProvider.getSelectedElement(ktFile)
val expression = when (element) {
is KtExpression -> element
@@ -5,9 +5,7 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.components
import org.jetbrains.kotlin.analysis.api.analyse
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.expressionMarkerProvider
import org.jetbrains.kotlin.analysis.api.impl.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtFile
@@ -17,6 +15,8 @@ import org.jetbrains.kotlin.test.services.assertions
abstract class AbstractExpectedExpressionTypeTest : AbstractHLApiSingleFileTest() {
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFile, module, testServices)
val expressionAtCaret = testServices.expressionMarkerProvider.getElementOfTypAtCaret(ktFile) as KtExpression
val actualExpectedTypeText: String? = executeOnPooledThreadInReadAction {
@@ -5,9 +5,7 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.components
import org.jetbrains.kotlin.analysis.api.analyse
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.expressionMarkerProvider
import org.jetbrains.kotlin.analysis.api.impl.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtFile
@@ -17,6 +15,8 @@ import org.jetbrains.kotlin.test.services.assertions
abstract class AbstractHLExpressionTypeTest : AbstractHLApiSingleFileTest() {
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFile, module, testServices)
val expression = testServices.expressionMarkerProvider.getSelectedElement(ktFile) as KtExpression
val type = executeOnPooledThreadInReadAction {
analyseForTest(expression) { expression.getKtType()?.render() }
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.components
import com.intellij.openapi.util.text.StringUtil
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.analysis.api.analyse
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest
import org.jetbrains.kotlin.psi.KtCallExpression
import org.jetbrains.kotlin.psi.KtFile
@@ -24,6 +23,8 @@ import java.io.File
abstract class AbstractHasCommonSubtypeTest : AbstractHLApiSingleFileTest() {
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFile, module, testServices)
val errors = mutableListOf<String>()
val originalText = ktFile.text
val actualTextBuilder = StringBuilder()
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.components.KtTypeRendererOptions
import org.jetbrains.kotlin.analysis.api.impl.barebone.parentsOfType
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.expressionMarkerProvider
import org.jetbrains.kotlin.analysis.api.impl.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleModuleTest
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtFunctionSymbol
@@ -22,6 +21,8 @@ import org.jetbrains.kotlin.test.services.assertions
abstract class AbstractOverriddenDeclarationProviderTest : AbstractHLApiSingleModuleTest() {
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFiles, module, testServices)
val declaration = testServices.expressionMarkerProvider.getElementOfTypAtCaret<KtDeclaration>(ktFiles.first())
val actual = executeOnPooledThreadInReadAction {
@@ -5,10 +5,8 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.components
import org.jetbrains.kotlin.analysis.api.analyse
import org.jetbrains.kotlin.analysis.api.components.KtDeclarationRendererOptions
import org.jetbrains.kotlin.analysis.api.components.KtTypeRendererOptions
import org.jetbrains.kotlin.analysis.api.impl.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
@@ -17,6 +15,8 @@ import org.jetbrains.kotlin.test.services.assertions
abstract class AbstractRendererTest : AbstractHLApiSingleFileTest() {
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFile, module, testServices)
val options = KtDeclarationRendererOptions.DEFAULT.copy(
approximateTypes = true,
renderContainingDeclarations = true,
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.analysis.api.calls.KtErrorCallTarget
import org.jetbrains.kotlin.analysis.api.calls.KtSuccessCallTarget
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.expressionMarkerProvider
import org.jetbrains.kotlin.analysis.api.impl.base.KtMapBackedSubstitutor
import org.jetbrains.kotlin.analysis.api.impl.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleModuleTest
import org.jetbrains.kotlin.analysis.api.symbols.*
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtPossibleMemberSymbol
@@ -30,6 +29,8 @@ import kotlin.reflect.jvm.javaGetter
abstract class AbstractResolveCallTest : AbstractHLApiSingleModuleTest() {
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFiles, module, testServices)
val ktFile = ktFiles.first()
val expression = testServices.expressionMarkerProvider.getSelectedElement(ktFile)
@@ -5,8 +5,6 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.scopes
import org.jetbrains.kotlin.analysis.api.analyse
import org.jetbrains.kotlin.analysis.api.impl.base.test.executeOnPooledThreadInReadAction
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest
import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer
import org.jetbrains.kotlin.psi.KtFile
@@ -16,6 +14,8 @@ import org.jetbrains.kotlin.test.services.assertions
abstract class AbstractFileScopeTest : AbstractHLApiSingleFileTest() {
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFile, module, testServices)
val actual = executeOnPooledThreadInReadAction {
analyseForTest(ktFile) {
val symbol = ktFile.getFileSymbol()
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.analysis.api.impl.base.test.symbols
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.impl.base.test.analyseOnPooledThreadInReadAction
import org.jetbrains.kotlin.analysis.api.impl.base.test.test.framework.AbstractHLApiSingleFileTest
import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol
@@ -32,6 +31,8 @@ abstract class AbstractSymbolTest : AbstractHLApiSingleFileTest() {
abstract fun doOutOfBlockModification(ktFile: KtFile)
override fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
super.doTestByFileStructure(ktFile, module, testServices)
val createPointers = SymbolTestDirectives.DO_NOT_CHECK_SYMBOL_RESTORE !in module.directives
val pointersWithRendered = analyseOnPooledThreadInReadAction(ktFile) {
collectSymbols(ktFile, testServices).map { symbol ->
@@ -15,5 +15,7 @@ abstract class AbstractHLApiSingleFileTest : AbstractHLApiSingleModuleTest() {
doTestByFileStructure(singleFile, module, testServices)
}
protected abstract fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices)
protected open fun doTestByFileStructure(ktFile: KtFile, module: TestModule, testServices: TestServices) {
configurator.prepareTestFiles(listOf(ktFile), module, testServices)
}
}
@@ -23,7 +23,9 @@ abstract class AbstractHLApiSingleModuleTest : AbstractFrontendApiTest() {
doTestByFileStructure(ktFiles, singleModule, testServices)
}
protected abstract fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices)
protected open fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
configurator.prepareTestFiles(ktFiles, module, testServices)
}
protected inline fun <R> analyseOnPooledThreadInReadAction(context: KtElement, crossinline action: KtAnalysisSession.() -> R): R =
executeOnPooledThreadInReadAction {