From 78ef58bef4c8e5bc3276502a56e8deb0a63da002 Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Tue, 20 Feb 2024 22:41:10 +0100 Subject: [PATCH] [AA] Tests: Remove decompiled files from `LibraryBinary` and add `LibraryBinaryDecompiled` - `LibraryBinary` should not contain any decompiled files, as we want FIR symbols in tests to be provided from indexed stubs or class files, but definitely not from decompiled PSI. This brings `LibraryBinary` much closer to the behavior of binary libraries in the IDE. - Some tests may still require access to a decompiled file, for example when trying to test `getOrBuildFir` for some `KtElement` coming from a library. This commit introduces `LibraryBinaryDecompiled`, which does contain decompiled files. - We don't really need `LibraryBinary` as a main test module kind anymore, since tests generally want to access some main `KtFile`. Hence, test configurators for `LibraryBinary` have been turned into configurators for `LibraryBinaryDecompiled`. - An alternative would be decompiling files on demand, but this is not currently feasible because the Standalone API doesn't reconcile stubs with decompiled PSI, like the IDE does automatically. (For the same declaration, the stub and the PSI will have a different identity.) As long as there is no support for this, we'll have to rely on a separate test module kind. ^KT-65960 --- .../AnalysisApiFe10TestConfiguratorFactory.kt | 1 + .../AnalysisApiFirTestConfiguratorFactory.kt | 9 +-- ...ePsiDeclarationProviderTestGenerated.java} | 4 +- ...irStandaloneModeTestConfiguratorFactory.kt | 7 ++- ...ibraryBinaryDecompiledTestConfigurator.kt} | 6 +- .../delegateInterfaceLibrary.kt | 2 +- .../delegatedMemberScope/simpleLibrary.kt | 2 +- .../KtLibraryBinaryDecompiledModuleFactory.kt | 24 ++++++++ .../structure/KtLibraryBinaryModuleFactory.kt | 37 ++---------- .../KtLibraryBinaryModuleFactoryBase.kt | 50 ++++++++++++++++ .../project/structure/KtModuleFactory.kt | 1 + ...ependencyKindModuleStructureTransformer.kt | 3 +- .../test/configurators/TestModuleKind.kt | 12 ++++ .../getterFromLibraryAndSetterFromSources.txt | 60 ------------------- .../setterFromLibraryAndGetterFromSources.txt | 60 ------------------- .../fir/AbstractLibraryGetOrBuildFirTest.kt | 5 +- ...lysisApiFirCodeFragmentTestConfigurator.kt | 2 +- ...ibraryBinaryDecompiledTestConfigurator.kt} | 6 +- .../AnalysisApiFirSourceTestConfigurator.kt | 2 +- ...lLightClassesDecompiledTestConfigurator.kt | 8 +-- .../tests/analysis/api/analysisApi.kt | 5 +- 21 files changed, 126 insertions(+), 180 deletions(-) rename analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/{FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java => FirStandaloneNormalAnalysisLibraryBinaryDecompiledModulePsiDeclarationProviderTestGenerated.java} (96%) rename analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/{StandaloneModeLibraryBinaryTestConfigurator.kt => StandaloneModeLibraryBinaryDecompiledTestConfigurator.kt} (95%) create mode 100644 analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryDecompiledModuleFactory.kt create mode 100644 analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactoryBase.kt rename analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/{AnalysisApiFirLibraryBinaryTestConfigurator.kt => AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.kt} (95%) diff --git a/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfiguratorFactory.kt b/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfiguratorFactory.kt index 3feb64cd4a8..83e8f9f6032 100644 --- a/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfiguratorFactory.kt +++ b/analysis/analysis-api-fe10/tests/org/jetbrains/kotlin/analysis/api/fe10/test/configurator/AnalysisApiFe10TestConfiguratorFactory.kt @@ -35,6 +35,7 @@ object AnalysisApiFe10TestConfiguratorFactory : AnalysisApiTestConfiguratorFacto TestModuleKind.ScriptSource, TestModuleKind.LibraryBinary, + TestModuleKind.LibraryBinaryDecompiled, TestModuleKind.LibrarySource, TestModuleKind.CodeFragment, TestModuleKind.NotUnderContentRoot -> { diff --git a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/test/configurators/AnalysisApiFirTestConfiguratorFactory.kt b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/test/configurators/AnalysisApiFirTestConfiguratorFactory.kt index b6a375c3b74..9cf1153daba 100644 --- a/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/test/configurators/AnalysisApiFirTestConfiguratorFactory.kt +++ b/analysis/analysis-api-fir/tests/org/jetbrains/kotlin/analysis/api/fir/test/configurators/AnalysisApiFirTestConfiguratorFactory.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.analysis.api.fir.test.configurators import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirCodeFragmentTestConfigurator -import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryTestConfigurator +import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryDecompiledTestConfigurator import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibrarySourceTestConfigurator import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirScriptTestConfigurator import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator @@ -27,9 +27,9 @@ object AnalysisApiFirTestConfiguratorFactory : AnalysisApiTestConfiguratorFactor AnalysisSessionMode.Dependent -> AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = true) } - TestModuleKind.LibraryBinary -> { + TestModuleKind.LibraryBinaryDecompiled -> { require(data.analysisSessionMode == AnalysisSessionMode.Normal) - AnalysisApiFirLibraryBinaryTestConfigurator + AnalysisApiFirLibraryBinaryDecompiledTestConfigurator } TestModuleKind.LibrarySource -> { @@ -56,12 +56,13 @@ object AnalysisApiFirTestConfiguratorFactory : AnalysisApiTestConfiguratorFactor true } - TestModuleKind.LibraryBinary, + TestModuleKind.LibraryBinaryDecompiled, TestModuleKind.LibrarySource, TestModuleKind.CodeFragment -> { data.analysisSessionMode == AnalysisSessionMode.Normal } + TestModuleKind.LibraryBinary, TestModuleKind.NotUnderContentRoot -> false } } diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryDecompiledModulePsiDeclarationProviderTestGenerated.java similarity index 96% rename from analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java rename to analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryDecompiledModulePsiDeclarationProviderTestGenerated.java index a41650dc9d4..59c5d85af9a 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/psiDeclarationProvider/FirStandaloneNormalAnalysisLibraryBinaryDecompiledModulePsiDeclarationProviderTestGenerated.java @@ -27,14 +27,14 @@ import java.util.regex.Pattern; @SuppressWarnings("all") @TestMetadata("analysis/analysis-api/testData/standalone/binary") @TestDataPath("$PROJECT_ROOT") -public class FirStandaloneNormalAnalysisLibraryBinaryModulePsiDeclarationProviderTestGenerated extends AbstractPsiDeclarationProviderTest { +public class FirStandaloneNormalAnalysisLibraryBinaryDecompiledModulePsiDeclarationProviderTestGenerated extends AbstractPsiDeclarationProviderTest { @NotNull @Override public AnalysisApiTestConfigurator getConfigurator() { return AnalysisApiFirStandaloneModeTestConfiguratorFactory.INSTANCE.createConfigurator( new AnalysisApiTestConfiguratorFactoryData( FrontendKind.Fir, - TestModuleKind.LibraryBinary, + TestModuleKind.LibraryBinaryDecompiled, AnalysisSessionMode.Normal, AnalysisApiMode.Standalone ) diff --git a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/AnalysisApiFirStandaloneModeTestConfiguratorFactory.kt b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/AnalysisApiFirStandaloneModeTestConfiguratorFactory.kt index 2d4a448b7fe..3ce4cb556ca 100644 --- a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/AnalysisApiFirStandaloneModeTestConfiguratorFactory.kt +++ b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/AnalysisApiFirStandaloneModeTestConfiguratorFactory.kt @@ -17,8 +17,8 @@ object AnalysisApiFirStandaloneModeTestConfiguratorFactory : AnalysisApiTestConf AnalysisSessionMode.Dependent -> unsupportedModeError(data) } - TestModuleKind.LibraryBinary -> when (data.analysisSessionMode) { - AnalysisSessionMode.Normal -> StandaloneModeLibraryBinaryTestConfigurator + TestModuleKind.LibraryBinaryDecompiled -> when (data.analysisSessionMode) { + AnalysisSessionMode.Normal -> StandaloneModeLibraryBinaryDecompiledTestConfigurator AnalysisSessionMode.Dependent -> unsupportedModeError(data) } @@ -35,12 +35,13 @@ object AnalysisApiFirStandaloneModeTestConfiguratorFactory : AnalysisApiTestConf data.analysisApiMode != AnalysisApiMode.Standalone -> false else -> when (data.moduleKind) { TestModuleKind.Source, - TestModuleKind.LibraryBinary, + TestModuleKind.LibraryBinaryDecompiled, TestModuleKind.CodeFragment -> { true } TestModuleKind.ScriptSource, + TestModuleKind.LibraryBinary, TestModuleKind.LibrarySource, TestModuleKind.NotUnderContentRoot -> { false diff --git a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/StandaloneModeLibraryBinaryTestConfigurator.kt b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/StandaloneModeLibraryBinaryDecompiledTestConfigurator.kt similarity index 95% rename from analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/StandaloneModeLibraryBinaryTestConfigurator.kt rename to analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/StandaloneModeLibraryBinaryDecompiledTestConfigurator.kt index ffcf306c503..395f5417961 100644 --- a/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/StandaloneModeLibraryBinaryTestConfigurator.kt +++ b/analysis/analysis-api-standalone/tests/org/jetbrains/kotlin/analysis/api/standalone/fir/test/configurators/StandaloneModeLibraryBinaryDecompiledTestConfigurator.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisAp import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiLibraryBaseTestServiceRegistrar import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AnalysisApiFirTestServiceRegistrar import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.configureOptionalTestCompilerPlugin -import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtLibraryBinaryModuleFactory +import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtLibraryBinaryDecompiledModuleFactory import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtModuleFactory import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModuleProjectStructure import org.jetbrains.kotlin.analysis.test.framework.project.structure.TestModuleStructureFactory @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.configuration.ExternalAnnotationsEnvironmentConfigurator -object StandaloneModeLibraryBinaryTestConfigurator : StandaloneModeConfiguratorBase() { +object StandaloneModeLibraryBinaryDecompiledTestConfigurator : StandaloneModeConfiguratorBase() { override fun configureTest(builder: TestConfigurationBuilder, disposable: Disposable) { super.configureTest(builder, disposable) @@ -38,7 +38,7 @@ object StandaloneModeLibraryBinaryTestConfigurator : StandaloneModeConfiguratorB useConfigurators(::ExternalAnnotationsEnvironmentConfigurator) useSourcePreprocessor(::ExternalAnnotationsSourcePreprocessor) - useAdditionalService { KtLibraryBinaryModuleFactory } + useAdditionalService { KtLibraryBinaryDecompiledModuleFactory } useAdditionalService { DispatchingTestModuleCompiler() } useAdditionalService { TestModuleDecompilerJar() } diff --git a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/delegateInterfaceLibrary.kt b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/delegateInterfaceLibrary.kt index 60e7dbe0652..86622703788 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/delegateInterfaceLibrary.kt +++ b/analysis/analysis-api/testData/components/scopeProvider/declaredMemberScope/delegateInterfaceLibrary.kt @@ -1,5 +1,5 @@ // MAIN_FILE_NAME: I -// MODULE_KIND: LibraryBinary +// MODULE_KIND: LibraryBinaryDecompiled // FILE: A.kt interface A { var Int.zoo: Unit diff --git a/analysis/analysis-api/testData/components/scopeProvider/delegatedMemberScope/simpleLibrary.kt b/analysis/analysis-api/testData/components/scopeProvider/delegatedMemberScope/simpleLibrary.kt index 71f95887796..14aee831954 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/delegatedMemberScope/simpleLibrary.kt +++ b/analysis/analysis-api/testData/components/scopeProvider/delegatedMemberScope/simpleLibrary.kt @@ -1,6 +1,6 @@ // IGNORE_FE10 // MAIN_FILE_NAME: I -// MODULE_KIND: LibraryBinary +// MODULE_KIND: LibraryBinaryDecompiled // FILE: A.kt interface A { var Int.zoo: Unit diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryDecompiledModuleFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryDecompiledModuleFactory.kt new file mode 100644 index 00000000000..644e63f7195 --- /dev/null +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryDecompiledModuleFactory.kt @@ -0,0 +1,24 @@ +/* + * 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.test.framework.project.structure + +import com.intellij.openapi.project.Project +import com.intellij.psi.PsiFile +import org.jetbrains.kotlin.analysis.test.framework.services.libraries.testModuleDecompiler +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind +import org.jetbrains.kotlin.test.services.TestServices +import java.nio.file.Path + +/** + * @see TestModuleKind.LibraryBinaryDecompiled + */ +object KtLibraryBinaryDecompiledModuleFactory : KtLibraryBinaryModuleFactoryBase() { + override val testModuleKind: TestModuleKind + get() = TestModuleKind.LibraryBinaryDecompiled + + override fun decompileToPsiFiles(binaryRoot: Path, testServices: TestServices, project: Project): List = + testServices.testModuleDecompiler.getAllPsiFilesFromLibrary(binaryRoot, project) +} diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactory.kt index d6be39236ae..de426db0b50 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactory.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactory.kt @@ -6,44 +6,17 @@ package org.jetbrains.kotlin.analysis.test.framework.project.structure import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory -import org.jetbrains.kotlin.analysis.test.framework.services.environmentManager -import org.jetbrains.kotlin.analysis.test.framework.services.libraries.compiledLibraryProvider -import org.jetbrains.kotlin.analysis.test.framework.services.libraries.testModuleDecompiler +import com.intellij.psi.PsiFile import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind -import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import java.nio.file.Path /** * @see TestModuleKind.LibraryBinary */ -object KtLibraryBinaryModuleFactory : KtModuleFactory { - override fun createModule( - testModule: TestModule, - contextModule: KtTestModule?, - dependencyPaths: Collection, - testServices: TestServices, - project: Project, - ): KtTestModule { - val library = testServices.compiledLibraryProvider.compileToLibrary(testModule, dependencyPaths).artifact - val decompiledFiles = testServices.testModuleDecompiler.getAllPsiFilesFromLibrary(library, project) +object KtLibraryBinaryModuleFactory : KtLibraryBinaryModuleFactoryBase() { + override val testModuleKind: TestModuleKind + get() = TestModuleKind.LibraryBinary - return KtTestModule( - TestModuleKind.LibraryBinary, - testModule, - KtLibraryModuleImpl( - testModule.name, - testModule.targetPlatform, - StandaloneProjectFactory.createSearchScopeByLibraryRoots( - listOf(library), - testServices.environmentManager.getProjectEnvironment(), - ), - project, - binaryRoots = listOf(library), - librarySources = null, - ), - decompiledFiles, - ) - } + override fun decompileToPsiFiles(binaryRoot: Path, testServices: TestServices, project: Project): List = emptyList() } diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactoryBase.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactoryBase.kt new file mode 100644 index 00000000000..64e1f11dd67 --- /dev/null +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtLibraryBinaryModuleFactoryBase.kt @@ -0,0 +1,50 @@ +/* + * 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.test.framework.project.structure + +import com.intellij.openapi.project.Project +import com.intellij.psi.PsiFile +import org.jetbrains.kotlin.analysis.api.standalone.base.project.structure.StandaloneProjectFactory +import org.jetbrains.kotlin.analysis.test.framework.services.environmentManager +import org.jetbrains.kotlin.analysis.test.framework.services.libraries.compiledLibraryProvider +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind +import org.jetbrains.kotlin.test.model.TestModule +import org.jetbrains.kotlin.test.services.TestServices +import java.nio.file.Path + +abstract class KtLibraryBinaryModuleFactoryBase : KtModuleFactory { + protected abstract val testModuleKind: TestModuleKind + + protected abstract fun decompileToPsiFiles(binaryRoot: Path, testServices: TestServices, project: Project): List + + override fun createModule( + testModule: TestModule, + contextModule: KtTestModule?, + testServices: TestServices, + project: Project, + dependencyPaths: Collection, + ): KtTestModule { + val binaryRoot = testServices.compiledLibraryProvider.compileToLibrary(testModule).artifact + val decompiledFiles = decompileToPsiFiles(binaryRoot, testServices, project) + + return KtTestModule( + testModuleKind, + testModule, + KtLibraryModuleImpl( + testModule.name, + testModule.targetPlatform, + StandaloneProjectFactory.createSearchScopeByLibraryRoots( + listOf(binaryRoot), + testServices.environmentManager.getProjectEnvironment(), + ), + project, + binaryRoots = listOf(binaryRoot), + librarySources = null, + ), + decompiledFiles, + ) + } +} diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleFactory.kt index e4e8b27731a..cd8e290a889 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleFactory.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtModuleFactory.kt @@ -49,6 +49,7 @@ private val TestServices.ktModuleFactory: KtModuleFactory by TestServices.testSe fun TestServices.getKtModuleFactoryForTestModule(testModule: TestModule): KtModuleFactory = when (testModule.explicitTestModuleKind) { TestModuleKind.Source -> KtSourceModuleFactory TestModuleKind.LibraryBinary -> KtLibraryBinaryModuleFactory + TestModuleKind.LibraryBinaryDecompiled -> KtLibraryBinaryDecompiledModuleFactory TestModuleKind.LibrarySource -> KtLibrarySourceModuleFactory TestModuleKind.ScriptSource -> KtScriptModuleFactory TestModuleKind.CodeFragment -> KtCodeFragmentModuleFactory diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/services/DependencyKindModuleStructureTransformer.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/services/DependencyKindModuleStructureTransformer.kt index 835d3d896a2..2cad9fc6fe4 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/services/DependencyKindModuleStructureTransformer.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/services/DependencyKindModuleStructureTransformer.kt @@ -54,7 +54,8 @@ object DependencyKindModuleStructureTransformer : ModuleStructureTransformer() { DependencyKind.Source } - TestModuleKind.LibraryBinary -> { + TestModuleKind.LibraryBinary, + TestModuleKind.LibraryBinaryDecompiled -> { DependencyKind.Binary } diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/TestModuleKind.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/TestModuleKind.kt index 7dd5364ed45..b9023e384a9 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/TestModuleKind.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/test/configurators/TestModuleKind.kt @@ -29,6 +29,18 @@ enum class TestModuleKind(val suffix: String) { */ LibraryBinary("LibraryBinary"), + /** + * A binary library with PSI files decompiled from the library's class files. Instead of building and indexing stubs (if applicable), + * the test's declaration provider will instead index the decompiled PSI files directly. + * + * [LibraryBinaryDecompiled] should be specified when tests access the library's files as test files, usually as a main file in a main + * module. See [AbstractAnalysisApiBasedTest][org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest] for an + * overview of "main module" and "main file". + * + * @see org.jetbrains.kotlin.analysis.test.framework.project.structure.KtLibraryBinaryDecompiledModuleFactory + */ + LibraryBinaryDecompiled("LibraryBinaryDecompiled"), + /** * @see org.jetbrains.kotlin.analysis.test.framework.project.structure.KtLibrarySourceModuleFactory */ diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/getterFromLibraryAndSetterFromSources.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/getterFromLibraryAndSetterFromSources.txt index 4b6040118c3..3abb3bbdd59 100644 --- a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/getterFromLibraryAndSetterFromSources.txt +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/getterFromLibraryAndSetterFromSources.txt @@ -3,16 +3,6 @@ TARGET: public open [ STATUS] var something: R|kotlin/String| public [ ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| public [ ResolvedTo(STATUS)] set([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun getSomething(): kotlin.String { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -28,16 +18,6 @@ TARGET: public open [ EXPECT_ACTUAL_MATCHING] var something: R|kotlin public [ ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/String| public [ ResolvedTo(EXPECT_ACTUAL_MATCHING)] set([ResolvedTo(EXPECT_ACTUAL_MATCHING)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun getSomething(): kotlin.String { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -54,16 +34,6 @@ TARGET: public open [ CONTRACTS] var something: R|kotlin/String| public [ ResolvedTo(CONTRACTS)] set([ResolvedTo(CONTRACTS)] s: R|kotlin/String|): R|kotlin/Unit| { } -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun getSomething(): kotlin.String { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -81,16 +51,6 @@ TARGET: public open [ IMPLICIT_TYPES_BODY_RESOLVE] var something: R|k public [ ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] set([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { } -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun getSomething(): kotlin.String { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -108,16 +68,6 @@ TARGET: public open [ ANNOTATION_ARGUMENTS] var something: R|kotlin/S public [ ResolvedTo(ANNOTATION_ARGUMENTS)] set([ResolvedTo(ANNOTATION_ARGUMENTS)] s: R|kotlin/String|): R|kotlin/Unit| { } -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun getSomething(): kotlin.String { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -135,16 +85,6 @@ TARGET: public open [ BODY_RESOLVE] var something: R|kotlin/String| public [ ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { } -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun getSomething(): kotlin.String { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { diff --git a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterFromLibraryAndGetterFromSources.txt b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterFromLibraryAndGetterFromSources.txt index a61930254af..d39dfdbebcd 100644 --- a/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterFromLibraryAndGetterFromSources.txt +++ b/analysis/low-level-api-fir/testData/lazyResolve/syntheticProperties/setterFromLibraryAndGetterFromSources.txt @@ -3,16 +3,6 @@ TARGET: public open override [ STATUS] var something: R|kotlin/String public [ ResolvedTo(STATUS)] get(): R|kotlin/String| { LAZY_BLOCK } public [ ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun setSomething([ResolvedTo(RAW_FIR)] s: kotlin.String): kotlin.Unit { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -28,16 +18,6 @@ TARGET: public open override [ EXPECT_ACTUAL_MATCHING] var something: public [ ResolvedTo(EXPECT_ACTUAL_MATCHING)] get(): R|kotlin/String| { LAZY_BLOCK } public [ ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun setSomething([ResolvedTo(RAW_FIR)] s: kotlin.String): kotlin.Unit { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -55,16 +35,6 @@ TARGET: public open override [ CONTRACTS] var something: R|kotlin/Str } public [ ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun setSomething([ResolvedTo(RAW_FIR)] s: kotlin.String): kotlin.Unit { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -84,16 +54,6 @@ TARGET: public open override [ IMPLICIT_TYPES_BODY_RESOLVE] var somet } public [ ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun setSomething([ResolvedTo(RAW_FIR)] s: kotlin.String): kotlin.Unit { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -113,16 +73,6 @@ TARGET: public open override [ ANNOTATION_ARGUMENTS] var something: R } public [ ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun setSomething([ResolvedTo(RAW_FIR)] s: kotlin.String): kotlin.Unit { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { @@ -142,16 +92,6 @@ TARGET: public open override [ BODY_RESOLVE] var something: R|kotlin/ } public [ ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| -FILE: [ResolvedTo(RAW_FIR)] BaseKotlin.class - public open [ResolvedTo(RAW_FIR)] class BaseKotlin : BaseJava { - public [ResolvedTo(RAW_FIR)] [ContainingClassKey=BaseKotlin] constructor(): R|BaseKotlin| { - LAZY_super<> - } - - public open [ResolvedTo(RAW_FIR)] fun setSomething([ResolvedTo(RAW_FIR)] s: kotlin.String): kotlin.Unit { LAZY_BLOCK } - - } - FILE: [ResolvedTo(IMPORTS)] main.kt public final [ResolvedTo(STATUS)] class Derived : R|BaseKotlin| { public [ResolvedTo(STATUS)] [ContainingClassKey=Derived] constructor(): R|Derived| { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLibraryGetOrBuildFirTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLibraryGetOrBuildFirTest.kt index e9819a02761..20f7e089950 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLibraryGetOrBuildFirTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLibraryGetOrBuildFirTest.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryTestConfigurator +import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryDecompiledTestConfigurator import org.jetbrains.kotlin.analysis.low.level.api.fir.util.FirDeclarationForCompiledElementSearcher import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest @@ -24,7 +24,8 @@ import org.jetbrains.kotlin.test.services.moduleStructure import org.jetbrains.kotlin.test.services.service abstract class AbstractLibraryGetOrBuildFirTest : AbstractAnalysisApiBasedTest() { - override val configurator = AnalysisApiFirLibraryBinaryTestConfigurator + override val configurator get() = AnalysisApiFirLibraryBinaryDecompiledTestConfigurator + override fun configureTest(builder: TestConfigurationBuilder) { builder.forTestsMatching("analysis/low-level-api-fir/testData/getOrBuildFirBinary/js/*") { this.defaultsProviderBuilder.targetPlatform = JsPlatforms.defaultJsPlatform diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirCodeFragmentTestConfigurator.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirCodeFragmentTestConfigurator.kt index bb8242b8dc9..851939a16df 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirCodeFragmentTestConfigurator.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirCodeFragmentTestConfigurator.kt @@ -27,7 +27,7 @@ class AnalysisApiFirCodeFragmentTestConfigurator( useModuleStructureTransformers(DependencyKindModuleStructureTransformer) } - AnalysisApiFirLibraryBinaryTestConfigurator.configureLibraryCompilationSupport(builder) + AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.configureLibraryCompilationSupport(builder) } override val serviceRegistrars: List diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirLibraryBinaryTestConfigurator.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.kt similarity index 95% rename from analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirLibraryBinaryTestConfigurator.kt rename to analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.kt index 86cbd06372d..01beac5d550 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirLibraryBinaryTestConfigurator.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisAp import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiLibraryBaseTestServiceRegistrar import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AnalysisApiFirTestServiceRegistrar import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.configureOptionalTestCompilerPlugin -import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtLibraryBinaryModuleFactory +import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtLibraryBinaryDecompiledModuleFactory import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtModuleFactory import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModuleProjectStructure import org.jetbrains.kotlin.analysis.test.framework.project.structure.TestModuleStructureFactory @@ -29,13 +29,13 @@ import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator -object AnalysisApiFirLibraryBinaryTestConfigurator : AnalysisApiTestConfigurator() { +object AnalysisApiFirLibraryBinaryDecompiledTestConfigurator : AnalysisApiTestConfigurator() { override val analyseInDependentSession: Boolean get() = false override val frontendKind: FrontendKind get() = FrontendKind.Fir override fun configureTest(builder: TestConfigurationBuilder, disposable: Disposable) { builder.apply { - useAdditionalService { KtLibraryBinaryModuleFactory } + useAdditionalService { KtLibraryBinaryDecompiledModuleFactory } useAdditionalService { AnalysisApiIndexingConfiguration(AnalysisApiBinaryLibraryIndexingMode.INDEX_STUBS) } configureLibraryCompilationSupport(this) configureOptionalTestCompilerPlugin() diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirSourceTestConfigurator.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirSourceTestConfigurator.kt index 608303dfac5..ca310c20185 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirSourceTestConfigurator.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/test/configurators/AnalysisApiFirSourceTestConfigurator.kt @@ -27,7 +27,7 @@ open class AnalysisApiFirSourceTestConfigurator( useModuleStructureTransformers(DependencyKindModuleStructureTransformer) } - AnalysisApiFirLibraryBinaryTestConfigurator.configureLibraryCompilationSupport(builder) + AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.configureLibraryCompilationSupport(builder) } override val serviceRegistrars: List diff --git a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/test/configurators/AnalysisApiSymbolLightClassesDecompiledTestConfigurator.kt b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/test/configurators/AnalysisApiSymbolLightClassesDecompiledTestConfigurator.kt index aa9e30db389..fddf2a767d7 100644 --- a/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/test/configurators/AnalysisApiSymbolLightClassesDecompiledTestConfigurator.kt +++ b/analysis/symbol-light-classes/tests/org/jetbrains/kotlin/light/classes/symbol/decompiled/test/configurators/AnalysisApiSymbolLightClassesDecompiledTestConfigurator.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.light.classes.symbol.decompiled.test.configurators import com.intellij.openapi.Disposable import com.intellij.openapi.project.Project -import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryTestConfigurator +import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirLibraryBinaryDecompiledTestConfigurator import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModuleProjectStructure import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar @@ -21,11 +21,11 @@ object AnalysisApiSymbolLightClassesDecompiledTestConfigurator : AnalysisApiTest override val frontendKind: FrontendKind get() = FrontendKind.Fir override fun configureTest(builder: TestConfigurationBuilder, disposable: Disposable) { - AnalysisApiFirLibraryBinaryTestConfigurator.configureTest(builder, disposable) + AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.configureTest(builder, disposable) } override val serviceRegistrars: List - get() = AnalysisApiFirLibraryBinaryTestConfigurator.serviceRegistrars + + get() = AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.serviceRegistrars + AnalysisApiSymbolLightClassesDecompiledTestServiceRegistrar override fun createModules( @@ -33,6 +33,6 @@ object AnalysisApiSymbolLightClassesDecompiledTestConfigurator : AnalysisApiTest testServices: TestServices, project: Project ): KtTestModuleProjectStructure { - return AnalysisApiFirLibraryBinaryTestConfigurator.createModules(moduleStructure, testServices, project) + return AnalysisApiFirLibraryBinaryDecompiledTestConfigurator.createModules(moduleStructure, testServices, project) } } \ No newline at end of file diff --git a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt index 63384db4cc7..6aa335c24cd 100644 --- a/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt +++ b/generators/analysis-api-generator/tests/org/jetbrains/kotlin/generators/tests/analysis/api/analysisApi.kt @@ -131,7 +131,7 @@ internal fun AnalysisApiTestGroup.generateAnalysisApiTests() { generateResolveExtensionsTests() } group( - filter = testModuleKindIs(TestModuleKind.Source, TestModuleKind.ScriptSource, TestModuleKind.LibraryBinary) and + filter = testModuleKindIs(TestModuleKind.Source, TestModuleKind.ScriptSource, TestModuleKind.LibraryBinaryDecompiled) and analysisApiModeIs(AnalysisApiMode.Standalone) ) { generateAnalysisApiStandaloneTests() @@ -254,9 +254,10 @@ private fun AnalysisApiTestGroup.generateAnalysisApiStandaloneTests() { ) { model(it, "source") } + test( AbstractPsiDeclarationProviderTest::class, - filter = testModuleKindIs(TestModuleKind.LibraryBinary) + filter = testModuleKindIs(TestModuleKind.LibraryBinaryDecompiled) ) { model(it, "binary") }