[LL FIR] ger rid of AbstractLowLevelApiLastModuleFirstFileTest
Now this class is redundant and all tests migrated to the base class ^KT-64805
This commit is contained in:
committed by
Space Team
parent
84d07ef492
commit
095989b6fc
@@ -1,3 +1,4 @@
|
|||||||
|
// MAIN_FILE_NAME: I
|
||||||
// DECLARATION_TYPE: org.jetbrains.kotlin.psi.KtClass
|
// DECLARATION_TYPE: org.jetbrains.kotlin.psi.KtClass
|
||||||
class I(private val p: A) : A by p
|
class I(private val p: A) : A by p
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -22,9 +22,9 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractFirLazyDeclaratio
|
|||||||
require(firSession.isSourceSession)
|
require(firSession.isSourceSession)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doTestByFileStructure(ktFile: KtFile, testModule: TestModule, testServices: TestServices) {
|
override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) {
|
||||||
doLazyResolveTest(ktFile, testServices, renderAllFiles = true) { firResolveSession ->
|
doLazyResolveTest(mainFile, testServices, renderAllFiles = true) { firResolveSession ->
|
||||||
findFirDeclarationToResolve(ktFile, testServices.moduleStructure, testServices, firResolveSession)
|
findFirDeclarationToResolve(mainFile, testServices.moduleStructure, testServices, firResolveSession)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-4
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -8,12 +8,11 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir
|
|||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.resolveToFirSymbol
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.resolveToFirSymbol
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiLastModuleFirstFileTest
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirElementFinder.findElementIn
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirElementFinder.findElementIn
|
||||||
|
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
||||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithFilteredAttributes
|
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithFilteredAttributes
|
||||||
@@ -42,7 +41,7 @@ import org.jetbrains.kotlin.test.services.TestServices
|
|||||||
/**
|
/**
|
||||||
* Test that we do not resolve declarations we do not need & do not build bodies for them
|
* Test that we do not resolve declarations we do not need & do not build bodies for them
|
||||||
*/
|
*/
|
||||||
abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractLowLevelApiLastModuleFirstFileTest() {
|
abstract class AbstractFirLazyDeclarationResolveTestCase : AbstractAnalysisApiBasedTest() {
|
||||||
protected fun findFirDeclarationToResolve(
|
protected fun findFirDeclarationToResolve(
|
||||||
ktFile: KtFile,
|
ktFile: KtFile,
|
||||||
moduleStructure: TestModuleStructure,
|
moduleStructure: TestModuleStructure,
|
||||||
|
|||||||
+6
-6
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFir
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFir
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiLastModuleFirstFileTest
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirOutOfContentRootTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirOutOfContentRootTestConfigurator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
|
||||||
|
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
@@ -22,15 +22,15 @@ import org.jetbrains.kotlin.test.model.TestModule
|
|||||||
import org.jetbrains.kotlin.test.services.TestServices
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
import org.jetbrains.kotlin.test.services.assertions
|
import org.jetbrains.kotlin.test.services.assertions
|
||||||
|
|
||||||
abstract class AbstractGetOrBuildFirTest : AbstractLowLevelApiLastModuleFirstFileTest() {
|
abstract class AbstractGetOrBuildFirTest : AbstractAnalysisApiBasedTest() {
|
||||||
override fun doTestByFileStructure(ktFile: KtFile, testModule: TestModule, testServices: TestServices) {
|
override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) {
|
||||||
val selectedElement = testServices.expressionMarkerProvider.getSelectedElementOfTypeByDirective(ktFile, testModule) as KtElement
|
val selectedElement = testServices.expressionMarkerProvider.getSelectedElementOfTypeByDirective(mainFile, mainModule) as KtElement
|
||||||
|
|
||||||
val actual = resolveWithClearCaches(ktFile) { session ->
|
val actual = resolveWithClearCaches(mainFile) { session ->
|
||||||
renderActualFir(
|
renderActualFir(
|
||||||
fir = selectedElement.getOrBuildFir(session),
|
fir = selectedElement.getOrBuildFir(session),
|
||||||
ktElement = selectedElement,
|
ktElement = selectedElement,
|
||||||
firFile = ktFile.getOrBuildFirFile(session),
|
firFile = mainFile.getOrBuildFirFile(session),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -45,14 +45,14 @@ import org.jetbrains.kotlin.test.services.moduleStructure
|
|||||||
* It collects all type annotations from the selected declaration and resolves them
|
* It collects all type annotations from the selected declaration and resolves them
|
||||||
*/
|
*/
|
||||||
abstract class AbstractLazyTypeAnnotationsTest : AbstractFirLazyDeclarationResolveTestCase() {
|
abstract class AbstractLazyTypeAnnotationsTest : AbstractFirLazyDeclarationResolveTestCase() {
|
||||||
override fun doTestByFileStructure(ktFile: KtFile, testModule: TestModule, testServices: TestServices) {
|
override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) {
|
||||||
val builderBeforeAnnotationResolve = StringBuilder()
|
val builderBeforeAnnotationResolve = StringBuilder()
|
||||||
val builderAfterAnnotationResolve = StringBuilder()
|
val builderAfterAnnotationResolve = StringBuilder()
|
||||||
|
|
||||||
val allKtFiles = testServices.allKtFiles()
|
val allKtFiles = testServices.allKtFiles()
|
||||||
resolveWithClearCaches(ktFile) { session ->
|
resolveWithClearCaches(mainFile) { session ->
|
||||||
val moduleStructure = testServices.moduleStructure
|
val moduleStructure = testServices.moduleStructure
|
||||||
val (declaration, resolver) = findFirDeclarationToResolve(ktFile, moduleStructure, testServices, session)
|
val (declaration, resolver) = findFirDeclarationToResolve(mainFile, moduleStructure, testServices, session)
|
||||||
resolver.invoke(FirResolvePhase.TYPES)
|
resolver.invoke(FirResolvePhase.TYPES)
|
||||||
|
|
||||||
if (declaration is FirCallableDeclaration) {
|
if (declaration is FirCallableDeclaration) {
|
||||||
|
|||||||
+9
-9
@@ -6,10 +6,10 @@
|
|||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir
|
package org.jetbrains.kotlin.analysis.low.level.api.fir
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiLastModuleFirstFileTest
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryTestConfigurator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirDeclarationForCompiledElementSearcher
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirDeclarationForCompiledElementSearcher
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
|
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
|
||||||
|
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.services.libraries.CompiledLibraryProvider
|
import org.jetbrains.kotlin.analysis.test.framework.services.libraries.CompiledLibraryProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.test.services.assertions
|
|||||||
import org.jetbrains.kotlin.test.services.moduleStructure
|
import org.jetbrains.kotlin.test.services.moduleStructure
|
||||||
import org.jetbrains.kotlin.test.services.service
|
import org.jetbrains.kotlin.test.services.service
|
||||||
|
|
||||||
abstract class AbstractLibraryGetOrBuildFirTest : AbstractLowLevelApiLastModuleFirstFileTest() {
|
abstract class AbstractLibraryGetOrBuildFirTest : AbstractAnalysisApiBasedTest() {
|
||||||
override val configurator = AnalysisApiFirLibraryBinaryTestConfigurator
|
override val configurator = AnalysisApiFirLibraryBinaryTestConfigurator
|
||||||
override fun configureTest(builder: TestConfigurationBuilder) {
|
override fun configureTest(builder: TestConfigurationBuilder) {
|
||||||
builder.forTestsMatching("analysis/low-level-api-fir/testData/getOrBuildFirBinary/js/*") {
|
builder.forTestsMatching("analysis/low-level-api-fir/testData/getOrBuildFirBinary/js/*") {
|
||||||
@@ -36,27 +36,27 @@ abstract class AbstractLibraryGetOrBuildFirTest : AbstractLowLevelApiLastModuleF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doTestByFileStructure(ktFile: KtFile, testModule: TestModule, testServices: TestServices) {
|
override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) {
|
||||||
val declaration = getElementToSearch(ktFile, testServices.moduleStructure)
|
val declaration = getElementToSearch(mainFile, testServices.moduleStructure)!!
|
||||||
|
|
||||||
val module = ProjectStructureProvider.getModule(ktFile.project, ktFile, contextualModule = null)
|
val module = ProjectStructureProvider.getModule(mainFile.project, mainFile, contextualModule = null)
|
||||||
val resolveSession = LLFirResolveSessionService.getInstance(ktFile.project).getFirResolveSessionForBinaryModule(module)
|
val resolveSession = LLFirResolveSessionService.getInstance(mainFile.project).getFirResolveSessionForBinaryModule(module)
|
||||||
val symbolProvider = resolveSession.getSessionFor(module).symbolProvider
|
val symbolProvider = resolveSession.getSessionFor(module).symbolProvider
|
||||||
val fir = FirDeclarationForCompiledElementSearcher(symbolProvider).findNonLocalDeclaration(declaration)
|
val fir = FirDeclarationForCompiledElementSearcher(symbolProvider).findNonLocalDeclaration(declaration)
|
||||||
|
|
||||||
testServices.assertions.assertEqualsToTestDataFileSibling(renderActualFir(fir, declaration, true))
|
testServices.assertions.assertEqualsToTestDataFileSibling(renderActualFir(fir, declaration, true))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getElementToSearch(ktFile: KtFile, moduleStructure: TestModuleStructure): KtDeclaration {
|
private fun getElementToSearch(ktFile: KtFile, moduleStructure: TestModuleStructure): KtDeclaration? {
|
||||||
val expectedType = moduleStructure.allDirectives[Directives.DECLARATION_TYPE].firstOrNull()
|
val expectedType = moduleStructure.allDirectives[Directives.DECLARATION_TYPE].firstOrNull()
|
||||||
?: error("Compiled code should have element type specified")
|
?: error("Compiled code should have element type specified")
|
||||||
@Suppress("UNCHECKED_CAST") val expectedClass = Class.forName(expectedType) as Class<out PsiElement>
|
@Suppress("UNCHECKED_CAST") val expectedClass = Class.forName(expectedType) as Class<out PsiElement>
|
||||||
return findFirstDeclaration(ktFile.declarations, expectedClass)!!
|
return findFirstDeclaration(ktFile.declarations, expectedClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun findFirstDeclaration(
|
private fun findFirstDeclaration(
|
||||||
declarations: List<KtDeclaration>,
|
declarations: List<KtDeclaration>,
|
||||||
expectedClass: Class<out PsiElement>
|
expectedClass: Class<out PsiElement>,
|
||||||
): KtDeclaration? {
|
): KtDeclaration? {
|
||||||
declarations.filterIsInstance(expectedClass).firstOrNull()?.let { return it as KtDeclaration }
|
declarations.filterIsInstance(expectedClass).firstOrNull()?.let { return it as KtDeclaration }
|
||||||
declarations.forEach { decl ->
|
declarations.forEach { decl ->
|
||||||
|
|||||||
+5
-3
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.Analys
|
|||||||
import org.jetbrains.kotlin.analysis.project.structure.KtLibrarySourceModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtLibrarySourceModule
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
|
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
|
||||||
|
import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider
|
||||||
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.getRegularClassSymbolByClassId
|
import org.jetbrains.kotlin.fir.resolve.providers.getRegularClassSymbolByClassId
|
||||||
@@ -38,11 +39,12 @@ abstract class AbstractStdLibSourcesLazyDeclarationResolveTest : AbstractFirLazy
|
|||||||
|
|
||||||
override val configurator get() = AnalysisApiFirStdlibSourceTestConfigurator
|
override val configurator get() = AnalysisApiFirStdlibSourceTestConfigurator
|
||||||
|
|
||||||
override fun doTestByFileStructure(ktFile: KtFile, testModule: TestModule, testServices: TestServices) {
|
override fun doTestByMainModuleAndOptionalMainFile(mainFile: KtFile?, mainModule: TestModule, testServices: TestServices) {
|
||||||
val project = ktFile.project
|
val psiFile = mainFile ?: testServices.ktModuleProvider.getModuleFiles(mainModule).first()
|
||||||
|
val project = psiFile.project
|
||||||
val moduleStructure = testServices.moduleStructure
|
val moduleStructure = testServices.moduleStructure
|
||||||
val classId = moduleStructure.allDirectives.singleValue(Directives.CLASS_ID).let(ClassId::fromString)
|
val classId = moduleStructure.allDirectives.singleValue(Directives.CLASS_ID).let(ClassId::fromString)
|
||||||
val module = ProjectStructureProvider.getModule(project, ktFile, contextualModule = null)
|
val module = ProjectStructureProvider.getModule(project, psiFile, contextualModule = null)
|
||||||
val resolveSession = LLFirResolveSessionService.getInstance(project).getFirResolveSession(module)
|
val resolveSession = LLFirResolveSessionService.getInstance(project).getFirResolveSession(module)
|
||||||
val classDeclaration = findRegularClass(classId, module, resolveSession).findPsi() as KtClassOrObject
|
val classDeclaration = findRegularClass(classId, module, resolveSession).findPsi() as KtClassOrObject
|
||||||
val file = classDeclaration.containingFile as KtFile
|
val file = classDeclaration.containingFile as KtFile
|
||||||
|
|||||||
+4
-4
@@ -9,10 +9,10 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
|||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.resolveToFirSymbolOfType
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.resolveToFirSymbolOfType
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazyResolveRenderer
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazyResolveRenderer
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolveWithClearCaches
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolveWithClearCaches
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiLastModuleFirstFileTest
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirOutOfContentRootTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirOutOfContentRootTestConfigurator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
|
||||||
|
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
import org.jetbrains.kotlin.analysis.test.framework.services.expressionMarkerProvider
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
@@ -33,9 +33,9 @@ import org.jetbrains.kotlin.test.services.assertions
|
|||||||
/**
|
/**
|
||||||
* This test exists to check lazy resolution for fake overrides
|
* This test exists to check lazy resolution for fake overrides
|
||||||
*/
|
*/
|
||||||
abstract class AbstractLazyDeclarationResolveScopeBasedTest : AbstractLowLevelApiLastModuleFirstFileTest() {
|
abstract class AbstractLazyDeclarationResolveScopeBasedTest : AbstractAnalysisApiBasedTest() {
|
||||||
override fun doTestByFileStructure(ktFile: KtFile, testModule: TestModule, testServices: TestServices) {
|
override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) {
|
||||||
val classOrObject = testServices.expressionMarkerProvider.getElementOfTypeAtCaret<KtClassOrObject>(ktFile)
|
val classOrObject = testServices.expressionMarkerProvider.getElementOfTypeAtCaret<KtClassOrObject>(mainFile)
|
||||||
resolveWithClearCaches(classOrObject) { session ->
|
resolveWithClearCaches(classOrObject) { session ->
|
||||||
val classSymbol = classOrObject.resolveToFirSymbolOfType<FirClassSymbol<*>>(session)
|
val classSymbol = classOrObject.resolveToFirSymbolOfType<FirClassSymbol<*>>(session)
|
||||||
val symbols = collectAllCallableDeclarations(classSymbol, session)
|
val symbols = collectAllCallableDeclarations(classSymbol, session)
|
||||||
|
|||||||
-23
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.low.level.api.fir.test.base
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest
|
|
||||||
import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider
|
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
|
||||||
import org.jetbrains.kotlin.test.model.TestModule
|
|
||||||
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
|
||||||
import org.jetbrains.kotlin.test.services.TestServices
|
|
||||||
|
|
||||||
abstract class AbstractLowLevelApiLastModuleFirstFileTest : AbstractAnalysisApiBasedTest() {
|
|
||||||
final override fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices) {
|
|
||||||
val lastModule = moduleStructure.modules.last()
|
|
||||||
val firstKtFileFile = testServices.ktModuleProvider.getModuleFiles(lastModule).firstNotNullOf { it as? KtFile }
|
|
||||||
doTestByFileStructure(firstKtFileFile, lastModule, testServices)
|
|
||||||
}
|
|
||||||
|
|
||||||
abstract fun doTestByFileStructure(ktFile: KtFile, testModule: TestModule, testServices: TestServices)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user