From d828a646cfe81f6c90b5a3b224b23b268b64604c Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Tue, 9 Jan 2024 20:35:58 +0100 Subject: [PATCH] [Analysis API] move allKtFiles util from LL FIR module ^KT-64805 --- .../symbols/AbstractMultiModuleSymbolByPsiTest.kt | 10 +++------- .../structure/AnalysisApiKtModuleProviderImpl.kt | 2 ++ ...stractFirLazyDeclarationResolveOverAllPhasesTest.kt | 3 ++- .../level/api/fir/AbstractLazyTypeAnnotationsTest.kt | 1 + .../kotlin/analysis/low/level/api/fir/firTestUtils.kt | 9 +-------- .../sir/analysisapi/AbstractKotlinSirContextTest.kt | 10 +++------- 6 files changed, 12 insertions(+), 23 deletions(-) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractMultiModuleSymbolByPsiTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractMultiModuleSymbolByPsiTest.kt index fe761a073ba..9be5533b3f8 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractMultiModuleSymbolByPsiTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractMultiModuleSymbolByPsiTest.kt @@ -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. */ @@ -9,22 +9,18 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiRecursiveElementVisitor import org.jetbrains.kotlin.analysis.api.renderer.declarations.impl.KtDeclarationRendererForDebug import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer -import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest -import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider +import org.jetbrains.kotlin.analysis.test.framework.project.structure.allKtFiles import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter import org.jetbrains.kotlin.analysis.utils.printer.parentsOfType import org.jetbrains.kotlin.psi.KtDeclaration -import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions abstract class AbstractMultiModuleSymbolByPsiTest : AbstractAnalysisApiBasedTest() { override fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices) { - val modules = moduleStructure.modules - val files = modules.flatMap { testServices.ktModuleProvider.getModuleFiles(it).filterIsInstance() } - + val files = testServices.allKtFiles() val debugRenderer = DebugSymbolRenderer() val debugPrinter = PrettyPrinter() diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt index e2a4cc00fba..0cf0a0e5215 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/AnalysisApiKtModuleProviderImpl.kt @@ -48,6 +48,8 @@ class AnalysisApiKtModuleProviderImpl( override fun getModuleStructure(): KtModuleProjectStructure = modulesStructure } +fun TestServices.allKtFiles(): List = moduleStructure.modules.flatMap(ktModuleProvider::getKtFiles) + val TestServices.ktModuleProvider: AnalysisApiKtModuleProvider by TestServices.testServiceAccessor() fun List.associateByName(): Map { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveOverAllPhasesTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveOverAllPhasesTest.kt index 055315278ab..4605bf57c27 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveOverAllPhasesTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveOverAllPhasesTest.kt @@ -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. */ @@ -7,6 +7,7 @@ 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.lazy.resolve.LLFirResolveMultiDesignationCollector +import org.jetbrains.kotlin.analysis.test.framework.project.structure.allKtFiles import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.resolvePhase diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLazyTypeAnnotationsTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLazyTypeAnnotationsTest.kt index da939db6f25..db52b9a7c98 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLazyTypeAnnotationsTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLazyTypeAnnotationsTest.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir 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.AnalysisApiFirSourceTestConfigurator +import org.jetbrains.kotlin.analysis.test.framework.project.structure.allKtFiles import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/firTestUtils.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/firTestUtils.kt index 21477bad503..a11e77e6b5d 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/firTestUtils.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/firTestUtils.kt @@ -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. */ @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionConf import org.jetbrains.kotlin.analysis.project.structure.KtLibraryModule import org.jetbrains.kotlin.analysis.project.structure.KtLibrarySourceModule import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider -import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider import org.jetbrains.kotlin.analysis.test.framework.services.environmentManager import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.declarations.* @@ -19,12 +18,10 @@ import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.psi.KtElement -import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.services.PreAnalysisHandler import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices -import org.jetbrains.kotlin.test.services.moduleStructure internal fun FirElement.renderWithClassName(): String = @@ -92,7 +89,3 @@ fun Collection.getDeclarationsToResolve() = flatMap { it.collectAllElem declaration is FirValueParameter && declaration.containingFunctionSymbol is FirAnonymousFunctionSymbol || declaration is FirProperty && declaration.isLocal } - -fun TestServices.allKtFiles(): List { - return moduleStructure.modules.flatMap(ktModuleProvider::getModuleFiles).mapNotNull { it as? KtFile } -} diff --git a/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt b/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt index 17114134a0e..b49b3ec54b3 100644 --- a/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt +++ b/native/swift/sir-analysis-api/tests/org/jetbrains/kotlin/sir/analysisapi/AbstractKotlinSirContextTest.kt @@ -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. */ @@ -7,13 +7,11 @@ package org.jetbrains.kotlin.sir.analysisapi import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest -import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider +import org.jetbrains.kotlin.analysis.test.framework.project.structure.allKtFiles import org.jetbrains.kotlin.analysis.test.framework.test.configurators.* import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind -import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.sir.SirForeignFunction import org.jetbrains.kotlin.sir.SirKotlinOrigin -import org.jetbrains.kotlin.sir.SirOrigin import org.jetbrains.kotlin.sir.builder.buildModule import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices @@ -33,9 +31,7 @@ open class AbstractKotlinSirContextTest : AbstractKotlinSirContextTestBase() { abstract class AbstractKotlinSirContextTestBase : AbstractAnalysisApiBasedTest() { override fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices) { - val ktFiles = moduleStructure.modules - .flatMap { testServices.ktModuleProvider.getModuleFiles(it).filterIsInstance() } - + val ktFiles = testServices.allKtFiles() val module = buildModule { val sirFactory = SirGenerator() ktFiles.forEach { file ->