From 3cd04a9e9e012b62b4508006f46d971405551370 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 18 Jan 2024 23:37:27 +0900 Subject: [PATCH] [Analysis API] Migrate existing code fragment tests to the new API --- ...ceModuleCompilerFacilityTestGenerated.java | 6 +- ...ceModuleCompilerFacilityTestGenerated.java | 6 +- ...tiModuleCompilerFacilityTestGenerated.java | 4 +- .../AbstractCompilerFacilityTest.kt | 37 +++++++------ .../codeFragments/annotationUsage.fragment.kt | 1 - .../codeFragments/annotationUsage.ir.txt | 4 +- .../codeFragments/annotationUsage.kt | 16 +++++- .../capturing/contextReceiver.fragment.kt | 1 - .../capturing/contextReceiver.kt | 15 ++++- .../contextReceiverExplicit.fragment.kt | 1 - .../capturing/contextReceiverExplicit.kt | 15 ++++- .../capturing/extensionReceiver.fragment.kt | 1 - .../capturing/extensionReceiver.kt | 14 ++++- .../extensionReceiverExplicit.fragment.kt | 1 - .../capturing/extensionReceiverExplicit.kt | 15 ++++- .../extensionReceiverLabeled.fragment.kt | 1 - .../capturing/extensionReceiverLabeled.kt | 15 ++++- .../extensionReceiverProperty.fragment.kt | 1 - .../capturing/extensionReceiverProperty.kt | 15 ++++- ...ensionReceiverPropertyExplicit.fragment.kt | 1 - .../extensionReceiverPropertyExplicit.kt | 15 ++++- ...tensionReceiverPropertyLabeled.fragment.kt | 1 - .../extensionReceiverPropertyLabeled.kt | 15 ++++- .../extensionReceiverSmartCasted.fragment.kt | 2 - .../capturing/extensionReceiverSmartCasted.kt | 16 +++++- .../capturing/initializer.fragment.kt | 1 - .../codeFragments/capturing/initializer.kt | 15 ++++- .../codeFragments/capturing/local.fragment.kt | 1 - .../codeFragments/capturing/local.kt | 15 ++++- .../localDelegatedProperty.fragment.kt | 2 - .../capturing/localDelegatedProperty.kt | 14 ++++- .../capturing/localFunction.fragment.kt | 1 - .../capturing/localFunction.ir.txt | 2 +- .../codeFragments/capturing/localFunction.kt | 15 ++++- .../codeFragments/capturing/localFunction.txt | 2 +- ...FunctionContainingClassClosure.fragment.kt | 1 - ...localFunctionContainingClassClosure.ir.txt | 2 +- .../localFunctionContainingClassClosure.kt | 15 ++++- .../localFunctionContainingClassClosure.txt | 6 +- ...nctionExtensionReceiverClosure.fragment.kt | 1 - ...calFunctionExtensionReceiverClosure.ir.txt | 2 +- .../localFunctionExtensionReceiverClosure.kt | 15 ++++- .../localFunctionExtensionReceiverClosure.txt | 4 +- ...FunctionLambdaParameterClosure.fragment.kt | 1 - ...localFunctionLambdaParameterClosure.ir.txt | 2 +- .../localFunctionLambdaParameterClosure.kt | 15 ++++- .../localFunctionLambdaParameterClosure.txt | 4 +- .../localFunctionLocalClosure.fragment.kt | 1 - .../localFunctionLocalClosure.ir.txt | 2 +- .../capturing/localFunctionLocalClosure.kt | 15 ++++- .../capturing/localFunctionLocalClosure.txt | 2 +- ...alFunctionLocalClosureMutating.fragment.kt | 1 - .../localFunctionLocalClosureMutating.ir.txt | 2 +- .../localFunctionLocalClosureMutating.kt | 15 ++++- .../localFunctionLocalClosureMutating.txt | 2 +- ...localFunctionMultipleCapturing.fragment.kt | 1 - .../localFunctionMultipleCapturing.ir.txt | 2 +- .../localFunctionMultipleCapturing.kt | 15 ++++- .../localFunctionMultipleCapturing.txt | 6 +- .../localFunctionParameterClosure.fragment.kt | 1 - .../localFunctionParameterClosure.ir.txt | 2 +- .../localFunctionParameterClosure.kt | 15 ++++- .../localFunctionParameterClosure.txt | 2 +- .../capturing/localMutated.fragment.kt | 1 - .../codeFragments/capturing/localMutated.kt | 14 ++++- .../capturing/localVariable.fragment.kt | 2 - .../codeFragments/capturing/localVariable.kt | 14 ++++- ...assAndFunctionContextReceivers.fragment.kt | 1 - ...pleClassAndFunctionContextReceivers.ir.txt | 2 +- ...ultipleClassAndFunctionContextReceivers.kt | 14 ++++- .../multipleClassContextReceivers.fragment.kt | 1 - .../multipleClassContextReceivers.ir.txt | 2 +- .../multipleClassContextReceivers.kt | 14 ++++- ...ltipleFunctionContextReceivers.fragment.kt | 1 - .../multipleFunctionContextReceivers.ir.txt | 2 +- .../multipleFunctionContextReceivers.kt | 16 +++++- .../capturing/nestedOuterClass.fragment.kt | 1 - .../capturing/nestedOuterClass.ir.txt | 6 +- .../capturing/nestedOuterClass.kt | 15 ++++- .../capturing/objectFunction.fragment.kt | 1 - .../codeFragments/capturing/objectFunction.kt | 15 ++++- .../capturing/outerClass.fragment.kt | 1 - .../codeFragments/capturing/outerClass.kt | 15 ++++- .../capturing/outerClassMutated.fragment.kt | 1 - .../capturing/outerClassMutated.kt | 15 ++++- .../outerClassMutatedPrivate.fragment.kt | 2 - .../capturing/outerClassMutatedPrivate.kt | 16 +++++- .../preferCorrectResolve.fragment.kt | 2 - .../capturing/preferCorrectResolve.kt | 13 ++++- .../capturing/privateMemberCall.fragment.kt | 1 - .../capturing/privateMemberCall.kt | 13 ++++- .../secondClassContextReceiver.fragment.kt | 1 - .../secondClassContextReceiver.ir.txt | 2 +- .../capturing/secondClassContextReceiver.kt | 14 ++++- .../singleClassContextReceiver.fragment.kt | 1 - .../singleClassContextReceiver.ir.txt | 2 +- .../capturing/singleClassContextReceiver.kt | 14 ++++- .../smartCastExtensionReceiver.fragment.kt | 1 - .../capturing/smartCastExtensionReceiver.kt | 15 ++++- .../smartCastValueParameter.fragment.kt | 1 - .../capturing/smartCastValueParameter.kt | 15 ++++- .../capturing/valueParameter.fragment.kt | 1 - .../codeFragments/capturing/valueParameter.kt | 15 ++++- .../codeFragments/commonContext.fragment.kt | 1 - .../codeFragments/commonContext.kt | 15 ++++- .../codeFragments/customName.fragment.kt | 1 - .../compilation/codeFragments/customName.kt | 14 ++++- .../duplicateLibrary.fragment.kt | 1 - .../codeFragments/duplicateLibrary.kt | 15 ++++- .../fragmentFunction.fragment.kt | 2 - .../codeFragments/fragmentFunction.kt | 16 +++++- .../codeFragments/imports.fragment.kt | 1 - .../compilation/codeFragments/imports.kt | 14 ++++- .../inlineFunctionUsage.fragment.kt | 4 -- .../codeFragments/inlineFunctionUsage.kt | 18 +++++- .../inlineFunctionUsageSource.fragment.kt | 1 - .../inlineFunctionUsageSource.ir.txt | 2 +- .../inlineFunctionUsageSource.kt | 15 ++++- .../inlineFunctionUsageSource.txt | 2 +- .../codeFragments/local.fragment.kt | 2 - .../compilation/codeFragments/local.kt | 16 +++++- .../codeFragments/simple.fragment.kt | 1 - .../compilation/codeFragments/simple.kt | 15 ++++- .../codeFragments/syntaxError.fragment.kt | 3 - .../compilation/codeFragments/syntaxError.kt | 17 +++++- .../compilation/codeFragments/syntaxError.txt | 2 +- .../compilerPluginUsage.fragment.kt | 8 --- .../codeFragments/compilerPluginUsage.kt | 22 +++++++- .../structure/KtCodeFragmentModuleFactory.kt | 9 ++- .../codeFragments/localClass.fragment.kt | 7 --- .../codeFragments/localClass.kt | 21 ++++++- .../codeFragments/localFunction.fragment.kt | 7 --- .../codeFragments/localFunction.kt | 21 ++++++- .../codeFragments/simple.fragment.kt | 1 - .../codeFragments/simple.kt | 15 ++++- .../fir/AbstractCodeFragmentCapturingTest.kt | 20 ++++--- .../AbstractLowLevelApiCodeFragmentTest.kt | 55 ------------------- ...ractCodeFragmentInBlockModificationTest.kt | 17 +++--- .../tests/analysis/api/analysisApi.kt | 4 +- 139 files changed, 793 insertions(+), 314 deletions(-) delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.fragment.kt delete mode 100644 analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.fragment.kt delete mode 100644 analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.fragment.kt delete mode 100644 analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.fragment.kt delete mode 100644 analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.fragment.kt delete mode 100644 analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLowLevelApiCodeFragmentTest.kt diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisLibrarySourceModuleCompilerFacilityTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisLibrarySourceModuleCompilerFacilityTestGenerated.java index 433a5c9f4c1..200ebadca5a 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisLibrarySourceModuleCompilerFacilityTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisLibrarySourceModuleCompilerFacilityTestGenerated.java @@ -43,7 +43,7 @@ public class FirIdeNormalAnalysisLibrarySourceModuleCompilerFacilityTestGenerate @Test public void testAllFilesPresentInCompilation() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test @@ -76,7 +76,7 @@ public class FirIdeNormalAnalysisLibrarySourceModuleCompilerFacilityTestGenerate public class CodeFragments { @Test public void testAllFilesPresentInCodeFragments() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test @@ -151,7 +151,7 @@ public class FirIdeNormalAnalysisLibrarySourceModuleCompilerFacilityTestGenerate public class Capturing { @Test public void testAllFilesPresentInCapturing() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleCompilerFacilityTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleCompilerFacilityTestGenerated.java index 282ce91fa63..06cacd79fb5 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleCompilerFacilityTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleCompilerFacilityTestGenerated.java @@ -43,7 +43,7 @@ public class FirIdeNormalAnalysisSourceModuleCompilerFacilityTestGenerated exten @Test public void testAllFilesPresentInCompilation() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test @@ -76,7 +76,7 @@ public class FirIdeNormalAnalysisSourceModuleCompilerFacilityTestGenerated exten public class CodeFragments { @Test public void testAllFilesPresentInCodeFragments() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test @@ -151,7 +151,7 @@ public class FirIdeNormalAnalysisSourceModuleCompilerFacilityTestGenerated exten public class Capturing { @Test public void testAllFilesPresentInCapturing() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleMultiModuleCompilerFacilityTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleMultiModuleCompilerFacilityTestGenerated.java index f5bc53198ff..75c5a0fc29e 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleMultiModuleCompilerFacilityTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/compilerFacility/FirIdeNormalAnalysisSourceModuleMultiModuleCompilerFacilityTestGenerated.java @@ -43,7 +43,7 @@ public class FirIdeNormalAnalysisSourceModuleMultiModuleCompilerFacilityTestGene @Test public void testAllFilesPresentInCompilationMultiModule() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test @@ -70,7 +70,7 @@ public class FirIdeNormalAnalysisSourceModuleMultiModuleCompilerFacilityTestGene public class CodeFragments { @Test public void testAllFilesPresentInCodeFragments() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments"), Pattern.compile("^([^.]+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments"), Pattern.compile("^(.+)\\.(kt)$"), null, true); } @Test diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compilerFacility/AbstractCompilerFacilityTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compilerFacility/AbstractCompilerFacilityTest.kt index 6eb8a71b7a9..fb9c190e239 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compilerFacility/AbstractCompilerFacilityTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/compilerFacility/AbstractCompilerFacilityTest.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.ConfigurationDirectives import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives +import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.EnvironmentConfigurator @@ -67,38 +68,31 @@ abstract class AbstractCompilerFacilityTest : AbstractAnalysisApiBasedTest() { } override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val testFile = mainModule.files.single { it.name == mainFile.name } + val irCollector = CollectingIrGenerationExtension() val project = mainFile.project project.extensionArea.getExtensionPoint(IrGenerationExtension.extensionPointName) .registerExtension(irCollector, LoadingOrder.LAST, project) - val ktCodeFragment = createCodeFragment(mainFile, mainModule, testServices) - if (ktCodeFragment != null) { - for (importNameString in mainModule.directives[Directives.CODE_FRAGMENT_IMPORT]) { - ktCodeFragment.addImport("import $importNameString") - } - } - val compilerConfiguration = CompilerConfiguration().apply { put(CommonConfigurationKeys.MODULE_NAME, mainModule.name) put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, mainModule.languageVersionSettings) put(JVMConfigurationKeys.IR, true) - mainModule.directives[Directives.CODE_FRAGMENT_CLASS_NAME].singleOrNull() + testFile.directives[Directives.CODE_FRAGMENT_CLASS_NAME].singleOrNull() ?.let { put(KtCompilerFacility.CODE_FRAGMENT_CLASS_NAME, it) } - mainModule.directives[Directives.CODE_FRAGMENT_METHOD_NAME].singleOrNull() + testFile.directives[Directives.CODE_FRAGMENT_METHOD_NAME].singleOrNull() ?.let { put(KtCompilerFacility.CODE_FRAGMENT_METHOD_NAME, it) } } - val ktTargetFile = ktCodeFragment ?: mainFile - - analyze(ktTargetFile) { + analyze(mainFile) { val target = KtCompilerTarget.Jvm(ClassBuilderFactories.TEST) val allowedErrorFilter: (KtDiagnostic) -> Boolean = { it.factoryName in ALLOWED_ERRORS } - val result = compile(ktTargetFile, compilerConfiguration, target, allowedErrorFilter) + val result = compile(mainFile, compilerConfiguration, target, allowedErrorFilter) val actualText = when (result) { is KtCompilationResult.Failure -> result.errors.joinToString("\n") { dumpDiagnostic(it) } @@ -172,10 +166,19 @@ abstract class AbstractCompilerFacilityTest : AbstractAnalysisApiBasedTest() { } object Directives : SimpleDirectivesContainer() { - val CODE_FRAGMENT_IMPORT by stringDirective("Import directive for a code fragment") - val CODE_FRAGMENT_CLASS_NAME by stringDirective("Short name of a code fragment class") - val CODE_FRAGMENT_METHOD_NAME by stringDirective("Name of a code fragment facade method") - val ATTACH_DUPLICATE_STDLIB by directive("Attach the 'stdlib-jvm-minimal-for-test' library to simulate duplicate stdlib dependency") + val CODE_FRAGMENT_CLASS_NAME by stringDirective( + "Short name of a code fragment class", + applicability = DirectiveApplicability.File + ) + + val CODE_FRAGMENT_METHOD_NAME by stringDirective( + "Name of a code fragment facade method", + applicability = DirectiveApplicability.File + ) + + val ATTACH_DUPLICATE_STDLIB by directive( + "Attach the 'stdlib-jvm-minimal-for-test' library to simulate duplicate stdlib dependency" + ) } } diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.fragment.kt deleted file mode 100644 index 6164b2a9b7a..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -foo() + bar() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.ir.txt index dfb71c6d9f6..6c26fee7c82 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.ir.txt @@ -9,5 +9,5 @@ MODULE_FRAGMENT EXPRESSION_BODY BLOCK type=kotlin.Int origin=null CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS - $this: CALL 'public final fun foo (): kotlin.Int declared in .MainKt' type=kotlin.Int origin=null - other: CALL 'public final fun bar (): kotlin.Int declared in .MainKt' type=kotlin.Int origin=null + $this: CALL 'public final fun foo (): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null + other: CALL 'public final fun bar (): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.kt index f0e79966f8d..b9e1bd125c1 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.kt @@ -1,10 +1,12 @@ +// MODULE: context + // FILE: lib.kt package lib @Target(AnnotationTarget.FUNCTION) annotation class Anno(val x: String = "foo") -// FILE: main.kt +// FILE: context.kt import lib.Anno @Anno @@ -14,5 +16,13 @@ fun foo(): Int = 5 fun bar(): Int = 10 fun test() { - val x = 0 -} \ No newline at end of file + val x = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +foo() + bar() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.fragment.kt deleted file mode 100644 index 19102815663..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -foo \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.kt index 5f91d894b68..8fab7613d5c 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiver.kt @@ -1,3 +1,8 @@ +// LANGUAGE: +ContextReceivers + +// MODULE: context + +// FILE: context.kt fun test() { with(Foo()) { call() @@ -6,11 +11,17 @@ fun test() { context(Foo) fun call() { - val x = 0 + val x = 0 } class Foo { val foo: String = "foo" } -// LANGUAGE: +ContextReceivers \ No newline at end of file + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +foo \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.fragment.kt deleted file mode 100644 index 21116d6f06e..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -this@Foo.foo \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.kt index 5f91d894b68..f88e98a971e 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/contextReceiverExplicit.kt @@ -1,3 +1,8 @@ +// LANGUAGE: +ContextReceivers + +// MODULE: context + +// FILE: context.kt fun test() { with(Foo()) { call() @@ -6,11 +11,17 @@ fun test() { context(Foo) fun call() { - val x = 0 + val x = 0 } class Foo { val foo: String = "foo" } -// LANGUAGE: +ContextReceivers \ No newline at end of file + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +this@Foo.foo \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.fragment.kt deleted file mode 100644 index 01f711e33c5..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -length + foo.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.kt index 987b28703b8..28be84cf070 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiver.kt @@ -1,11 +1,21 @@ +// MODULE: context + +// FILE: context.kt fun test() { with("Hello, world!") { with(Foo()) { - val x = 0 + val x = 0 } } } class Foo { val foo: String = "foo" -} \ No newline at end of file +} + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +length + foo.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.fragment.kt deleted file mode 100644 index 0b5068123f4..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -this@with.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.kt index aabc54362f0..5d1110cf9e0 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverExplicit.kt @@ -1,5 +1,16 @@ +// MODULE: context + +// FILE: context.kt fun test() { with("Hello, world!") { - val x = 0 + val x = 0 } -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +this@with.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.fragment.kt deleted file mode 100644 index 01feb60feae..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -this@str.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.kt index 2356d33739d..dac2ba28aa4 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverLabeled.kt @@ -1,5 +1,16 @@ +// MODULE: context + +// FILE: context.kt fun test() { with("Hello, world!") str@{ - val x = 0 + val x = 0 } -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +this@str.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.fragment.kt deleted file mode 100644 index 1b0b18fc4c9..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -dec() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.kt index f1bc8328606..65335a90fa0 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverProperty.kt @@ -1,8 +1,19 @@ +// MODULE: context + +// FILE: context.kt fun test() { 1.ext } val Int.ext: String get() { - return "foo" - } \ No newline at end of file + return "foo" + } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +dec() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.fragment.kt deleted file mode 100644 index d3b9147f7ab..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -this.dec() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.kt index f1bc8328606..64440ff2f9c 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyExplicit.kt @@ -1,8 +1,19 @@ +// MODULE: context + +// FILE: context.kt fun test() { 1.ext } val Int.ext: String get() { - return "foo" - } \ No newline at end of file + return "foo" + } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +this.dec() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.fragment.kt deleted file mode 100644 index 4e92b8aa110..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -this@ext.dec() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.kt index f1bc8328606..3f53247f311 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverPropertyLabeled.kt @@ -1,8 +1,19 @@ +// MODULE: context + +// FILE: context.kt fun test() { 1.ext } val Int.ext: String get() { - return "foo" - } \ No newline at end of file + return "foo" + } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +this@ext.dec() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.fragment.kt deleted file mode 100644 index 9a6847ad11d..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.fragment.kt +++ /dev/null @@ -1,2 +0,0 @@ -this as FooImpl -n \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.kt index 4f1e8420602..e3086bb6d5b 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.kt @@ -1,3 +1,6 @@ +// MODULE: context + +// FILE: context.kt interface Foo class FooImpl : Foo { @@ -8,6 +11,15 @@ fun makeFoo(): Foo = FooImpl() fun main() { makeFoo().apply { - Unit + Unit } -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +this as FooImpl +n \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.fragment.kt deleted file mode 100644 index c1e0f225857..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -a + b.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.kt index 3ad11d71465..f30dd790292 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/initializer.kt @@ -1,5 +1,16 @@ +// MODULE: context + +// FILE: context.kt class Foo(a: Int, b: String) { init { - val x = 0 + val x = 0 } -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +a + b.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.fragment.kt deleted file mode 100644 index c1b0730e013..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -x \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.kt index 81652f5e8b9..784c7bdaff0 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/local.kt @@ -1,4 +1,15 @@ +// MODULE: context + +// FILE: context.kt fun test() { val x = 0 - val y = 0 -} \ No newline at end of file + val y = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +x \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.fragment.kt deleted file mode 100644 index 3897e79b34e..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.fragment.kt +++ /dev/null @@ -1,2 +0,0 @@ -x = "O" -x + "K" diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.kt index 8640d18270e..db411c329ef 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localDelegatedProperty.kt @@ -1,3 +1,6 @@ +// MODULE: context + +// FILE: context.kt import kotlin.reflect.KProperty class Delegate(private var value: String) { @@ -12,5 +15,14 @@ class Delegate(private var value: String) { fun test() { var x by Delegate("a") - x + x } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +x = "O" +x + "K" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.fragment.kt deleted file mode 100644 index df1955d69c6..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call(x, y) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt index b9d22d5f1db..21eba6d4baa 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunction.kt + FILE fqName: fileName:context.kt FUN name:call visibility:local modality:FINAL <> (a:kotlin.Int, b:kotlin.String) returnType:kotlin.Unit VALUE_PARAMETER name:a index:0 type:kotlin.Int VALUE_PARAMETER name:b index:1 type:kotlin.String diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.kt index 610e72f8bfd..4f55943e659 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.kt @@ -1,3 +1,6 @@ +// MODULE: context + +// FILE: context.kt fun test() { fun call(a: Int, b: String) { println(b.repeat(a)) @@ -5,5 +8,13 @@ fun test() { val x = 2 val y = "foo" - val z = Unit -} \ No newline at end of file + val z = Unit +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call(x, y) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt index aa317b4f821..5a81727fee1 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunction.txt @@ -4,4 +4,4 @@ public final class CodeFragment { public final static method run(p0: int, p1: java.lang.String): void } -public final class LocalFunctionKt +public final class ContextKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.fragment.kt deleted file mode 100644 index bba16b0d864..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.ir.txt index 117bcc88ef6..379150adfae 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunctionContainingClassClosure.kt + FILE fqName: fileName:context.kt CLASS CLASS name:Foo modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Foo CONSTRUCTOR visibility:public <> () returnType:.Foo [primary] diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.kt index 786b5e9b1ff..83976d85c05 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.kt @@ -1,11 +1,22 @@ +// MODULE: context + +// FILE: context.kt class Foo { fun test() { fun call() { consume(this@Foo) } - call() + call() } } -fun consume(obj: Foo) {} \ No newline at end of file +fun consume(obj: Foo) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.txt index 3bdec927846..30e4379e39a 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionContainingClassClosure.txt @@ -4,11 +4,11 @@ public final class CodeFragment { public final static method run(p0: Foo): void } +public final class ContextKt + public final class Foo { - // source: 'localFunctionContainingClassClosure.kt' + // source: 'context.kt' public method (): void private final static method test$call(p0: Foo): void public final method test(): void } - -public final class LocalFunctionContainingClassClosureKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.fragment.kt deleted file mode 100644 index bba16b0d864..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.ir.txt index 148dd9ac341..d190cb9eb2d 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunctionExtensionReceiverClosure.kt + FILE fqName: fileName:context.kt FUN name:block visibility:public modality:FINAL (obj:T of .block, block:@[ExtensionFunctionType] kotlin.Function1.block, kotlin.Unit>) returnType:kotlin.Unit TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false VALUE_PARAMETER name:obj index:0 type:T of .block diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.kt index 2e0ccb01490..0d3ef6063cb 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.kt @@ -1,10 +1,13 @@ +// MODULE: context + +// FILE: context.kt fun test() { block("foo") { fun call() { consume(this@block) } - call() + call() } } @@ -12,4 +15,12 @@ fun block(obj: T, block: T.() -> Unit) { obj.block() } -fun consume(text: String) {} \ No newline at end of file +fun consume(text: String) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.txt index d097d22d16c..eab29160a6f 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionExtensionReceiverClosure.txt @@ -1,8 +1,8 @@ public final class CodeFragment { // source: 'fragment.kt' - inner (anonymous) class LocalFunctionExtensionReceiverClosureKt$test$1 + inner (anonymous) class ContextKt$test$1 public method (): void public final static method run(p0: java.lang.String): void } -public final class LocalFunctionExtensionReceiverClosureKt +public final class ContextKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.fragment.kt deleted file mode 100644 index bba16b0d864..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.ir.txt index cb0d7b1b140..a743d9fe4a1 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunctionLambdaParameterClosure.kt + FILE fqName: fileName:context.kt FUN name:block visibility:public modality:FINAL (obj:T of .block, block:kotlin.Function1.block, kotlin.Unit>) returnType:kotlin.Unit TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false VALUE_PARAMETER name:obj index:0 type:T of .block diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.kt index c4d7137402c..cd619b01193 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.kt @@ -1,10 +1,13 @@ +// MODULE: context + +// FILE: context.kt fun test() { block("foo") { foo -> fun call() { consume(foo) } - call() + call() } } @@ -12,4 +15,12 @@ fun block(obj: T, block: (T) -> Unit) { block(obj) } -fun consume(text: String) {} \ No newline at end of file +fun consume(text: String) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.txt index 71b0647b346..eab29160a6f 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLambdaParameterClosure.txt @@ -1,8 +1,8 @@ public final class CodeFragment { // source: 'fragment.kt' - inner (anonymous) class LocalFunctionLambdaParameterClosureKt$test$1 + inner (anonymous) class ContextKt$test$1 public method (): void public final static method run(p0: java.lang.String): void } -public final class LocalFunctionLambdaParameterClosureKt +public final class ContextKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.fragment.kt deleted file mode 100644 index bba16b0d864..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.ir.txt index c0528b02c58..a829dd02a61 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunctionLocalClosure.kt + FILE fqName: fileName:context.kt FUN name:call visibility:local modality:FINAL <> () returnType:kotlin.Unit FUN name:consume visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Unit VALUE_PARAMETER name:n index:0 type:kotlin.Int diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.kt index 125f7b9125d..544ee3197f8 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.kt @@ -1,3 +1,6 @@ +// MODULE: context + +// FILE: context.kt fun test() { val x = 0 @@ -5,7 +8,15 @@ fun test() { consume(x) } - call() + call() } -fun consume(n: Int) {} \ No newline at end of file +fun consume(n: Int) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.txt index c129142daf8..3a5e8a06404 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosure.txt @@ -4,4 +4,4 @@ public final class CodeFragment { public final static method run(p0: int): void } -public final class LocalFunctionLocalClosureKt +public final class ContextKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.fragment.kt deleted file mode 100644 index bba16b0d864..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.ir.txt index 2d31238315f..2d871f2d44f 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunctionLocalClosureMutating.kt + FILE fqName: fileName:context.kt FUN name:call visibility:local modality:FINAL <> () returnType:kotlin.Unit FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.kt index 19fc9a2ad78..c11e83023a9 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.kt @@ -1,3 +1,6 @@ +// MODULE: context + +// FILE: context.kt fun test() { var x = 0 @@ -5,5 +8,13 @@ fun test() { x = 1 } - call() -} \ No newline at end of file + call() +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.txt index b80c22a9dd5..2698642c899 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionLocalClosureMutating.txt @@ -5,4 +5,4 @@ public final class CodeFragment { public final inner class kotlin/jvm/internal/Ref$IntRef } -public final class LocalFunctionLocalClosureMutatingKt +public final class ContextKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.fragment.kt deleted file mode 100644 index e2eaa5abdf9..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call(0) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.ir.txt index b4bf59977ce..e77c0e55cf2 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunctionMultipleCapturing.kt + FILE fqName: fileName:context.kt CLASS CLASS name:Foo modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Foo CONSTRUCTOR visibility:public <> () returnType:.Foo [primary] diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.kt index 5889a98a0d8..8f75391b951 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.kt @@ -1,3 +1,6 @@ +// MODULE: context + +// FILE: context.kt class Foo { fun String.test() { var x: Int @@ -9,8 +12,16 @@ class Foo { x = 42 } - call(1) + call(1) } } -fun consume(obj: Any) {} \ No newline at end of file +fun consume(obj: Any) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call(0) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.txt index baf9bb27c73..f54f1435bb8 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionMultipleCapturing.txt @@ -5,12 +5,12 @@ public final class CodeFragment { public final inner class kotlin/jvm/internal/Ref$IntRef } +public final class ContextKt + public final class Foo { - // source: 'localFunctionMultipleCapturing.kt' + // source: 'context.kt' public method (): void private final static method test$call(p0: Foo, p1: java.lang.String, p2: kotlin.jvm.internal.Ref$IntRef, p3: int): void public final method test(p0: java.lang.String): void public final inner class kotlin/jvm/internal/Ref$IntRef } - -public final class LocalFunctionMultipleCapturingKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.fragment.kt deleted file mode 100644 index bba16b0d864..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.ir.txt index 838bf0f30fb..8308d3e12a6 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:localFunctionParameterClosure.kt + FILE fqName: fileName:context.kt FUN name:call visibility:local modality:FINAL <> () returnType:kotlin.Unit FUN name:consume visibility:public modality:FINAL <> (n:kotlin.Int) returnType:kotlin.Unit VALUE_PARAMETER name:n index:0 type:kotlin.Int diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.kt index b4da293e8b2..236b2814c18 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.kt @@ -1,9 +1,20 @@ +// MODULE: context + +// FILE: context.kt fun test(x: Int) { fun call() { consume(x) } - call() + call() } -fun consume(n: Int) {} \ No newline at end of file +fun consume(n: Int) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.txt index cf7a1cfef2f..3a5e8a06404 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localFunctionParameterClosure.txt @@ -4,4 +4,4 @@ public final class CodeFragment { public final static method run(p0: int): void } -public final class LocalFunctionParameterClosureKt +public final class ContextKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.fragment.kt deleted file mode 100644 index 3d2b4b14efe..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -x = 1 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.kt index eb43cd6a1da..d87d551fbc8 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localMutated.kt @@ -1,7 +1,17 @@ +// MODULE: context + +// FILE: context.kt fun test() { var x = 0 - val y = 0 + val y = 0 } + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK // FragmentSharedVariablesLowering depends on a specific function name -// CODE_FRAGMENT_METHOD_NAME: generated_for_debugger_fun \ No newline at end of file +// CODE_FRAGMENT_METHOD_NAME: generated_for_debugger_fun +x = 1 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.fragment.kt deleted file mode 100644 index 3897e79b34e..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.fragment.kt +++ /dev/null @@ -1,2 +0,0 @@ -x = "O" -x + "K" diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.kt index 1612fd40807..fed1bfc4a73 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/localVariable.kt @@ -1,4 +1,16 @@ +// MODULE: context + +// FILE: context.kt fun test() { var x = "a" - x + x } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +x = "O" +x + "K" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.fragment.kt deleted file mode 100644 index 3cd27954e98..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -useWithCtx1Ctx2Ctx3Ctx4() diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.ir.txt index 2afd9456576..bb4507ec829 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.ir.txt @@ -12,7 +12,7 @@ MODULE_FRAGMENT VALUE_PARAMETER name:p3 index:3 type:.Ctx4 EXPRESSION_BODY BLOCK type=kotlin.Int origin=null - CALL 'public final fun useWithCtx1Ctx2Ctx3Ctx4 ($context_receiver_0: .Ctx1, $context_receiver_1: .Ctx2, $context_receiver_2: .Ctx3, $context_receiver_3: .Ctx4): kotlin.Int declared in .MultipleClassAndFunctionContextReceiversKt' type=kotlin.Int origin=null + CALL 'public final fun useWithCtx1Ctx2Ctx3Ctx4 ($context_receiver_0: .Ctx1, $context_receiver_1: .Ctx2, $context_receiver_2: .Ctx3, $context_receiver_3: .Ctx4): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null $context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:.Ctx1 visibility:private [final]' type=.Ctx1 origin=null receiver: GET_VAR 'p0: .Test declared in .CodeFragment.run' type=.Test origin=null $context_receiver_1: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField1 type:.Ctx2 visibility:private [final]' type=.Ctx2 origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.kt index 47cdc310172..e5563196454 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassAndFunctionContextReceivers.kt @@ -1,4 +1,8 @@ // LANGUAGE: +ContextReceivers + +// MODULE: context + +// FILE: context.kt class Ctx1 class Ctx2 class Ctx3 @@ -11,6 +15,14 @@ context(Ctx1, Ctx2) class Test { context(Ctx3, Ctx4) fun foo() { - val x = 1 + val x = 1 } } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +useWithCtx1Ctx2Ctx3Ctx4() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.fragment.kt deleted file mode 100644 index f4279159c44..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -useWithCtx1Ctx2() diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.ir.txt index ca2c1fc39cc..f18447c2dc6 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.ir.txt @@ -10,7 +10,7 @@ MODULE_FRAGMENT VALUE_PARAMETER name:p1 index:1 type:.Test EXPRESSION_BODY BLOCK type=kotlin.Int origin=null - CALL 'public final fun useWithCtx1Ctx2 ($context_receiver_0: .Ctx1, $context_receiver_1: .Ctx2): kotlin.Int declared in .MultipleClassContextReceiversKt' type=kotlin.Int origin=null + CALL 'public final fun useWithCtx1Ctx2 ($context_receiver_0: .Ctx1, $context_receiver_1: .Ctx2): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null $context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:.Ctx1 visibility:private [final]' type=.Ctx1 origin=null receiver: GET_VAR 'p0: .Test declared in .CodeFragment.run' type=.Test origin=null $context_receiver_1: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField1 type:.Ctx2 visibility:private [final]' type=.Ctx2 origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.kt index 642263f5728..928c9ddf2fc 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleClassContextReceivers.kt @@ -1,4 +1,8 @@ // LANGUAGE: +ContextReceivers + +// MODULE: context + +// FILE: context.kt class Ctx1 class Ctx2 @@ -8,6 +12,14 @@ fun useWithCtx1Ctx2() = 3 context(Ctx1, Ctx2) class Test { fun foo() { - val x = 1 + val x = 1 } } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +useWithCtx1Ctx2() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.fragment.kt deleted file mode 100644 index f4279159c44..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -useWithCtx1Ctx2() diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.ir.txt index 4f02d1cd315..ae1fbeb9bb5 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.ir.txt @@ -10,6 +10,6 @@ MODULE_FRAGMENT VALUE_PARAMETER name:p1 index:1 type:.Ctx2 EXPRESSION_BODY BLOCK type=kotlin.Int origin=null - CALL 'public final fun useWithCtx1Ctx2 ($context_receiver_0: .Ctx1, $context_receiver_1: .Ctx2): kotlin.Int declared in .MultipleFunctionContextReceiversKt' type=kotlin.Int origin=null + CALL 'public final fun useWithCtx1Ctx2 ($context_receiver_0: .Ctx1, $context_receiver_1: .Ctx2): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null $context_receiver_0: GET_VAR 'p0: .Ctx1 declared in .CodeFragment.run' type=.Ctx1 origin=null $context_receiver_1: GET_VAR 'p1: .Ctx2 declared in .CodeFragment.run' type=.Ctx2 origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.kt index 59125a375f4..9fb80a264d2 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/multipleFunctionContextReceivers.kt @@ -1,4 +1,8 @@ // LANGUAGE: +ContextReceivers + +// MODULE: context + +// FILE: context.kt class Ctx1 class Ctx2 @@ -7,5 +11,13 @@ fun useWithCtx1Ctx2() = 3 context(Ctx1, Ctx2) fun foo() { - val x = 1 -} \ No newline at end of file + val x = 1 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +useWithCtx1Ctx2() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.fragment.kt deleted file mode 100644 index 273b7cdbebe..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -callFoo(this@Foo) + callString(a) + callString(b) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.ir.txt index bf10efa80f4..4d71251ffb1 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.ir.txt @@ -12,11 +12,11 @@ MODULE_FRAGMENT BLOCK type=kotlin.Int origin=null CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS $this: CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS - $this: CALL 'public final fun callFoo (foo: .Foo): kotlin.Int declared in .NestedOuterClassKt' type=kotlin.Int origin=null + $this: CALL 'public final fun callFoo (foo: .Foo): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null foo: GET_VAR 'p0: .Foo declared in .CodeFragment.run' type=.Foo origin=null - other: CALL 'public final fun callString (string: kotlin.String): kotlin.Int declared in .NestedOuterClassKt' type=kotlin.Int origin=null + other: CALL 'public final fun callString (string: kotlin.String): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null string: CALL 'private final fun (): kotlin.String declared in .Foo' type=kotlin.String origin=GET_PROPERTY $this: GET_VAR 'p0: .Foo declared in .CodeFragment.run' type=.Foo origin=null - other: CALL 'public final fun callString (string: kotlin.String): kotlin.Int declared in .NestedOuterClassKt' type=kotlin.Int origin=null + other: CALL 'public final fun callString (string: kotlin.String): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null string: CALL 'private final fun (): kotlin.String declared in .Foo.Bar' type=kotlin.String origin=GET_PROPERTY $this: GET_VAR 'p1: .Foo.Bar declared in .CodeFragment.run' type=.Foo.Bar origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.kt index b21c4accd37..59a1b8280ea 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/nestedOuterClass.kt @@ -1,3 +1,6 @@ +// MODULE: context + +// FILE: context.kt class Foo { private val a: String = "foo" @@ -5,7 +8,7 @@ class Foo { private val b: String = "bar" fun test() { - val x = 0 + val x = 0 } } } @@ -16,4 +19,12 @@ fun callFoo(foo: Foo): Int { fun callString(string: String): Int { return 1 -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +callFoo(this@Foo) + callString(a) + callString(b) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.fragment.kt deleted file mode 100644 index bba16b0d864..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.kt index 5f760247486..57c36612ce0 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/objectFunction.kt @@ -1,7 +1,18 @@ +// MODULE: context + +// FILE: context.kt object Foo { fun test() { - val x = 0 + val x = 0 } fun call() {} -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.fragment.kt deleted file mode 100644 index db0ac655185..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -a.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.kt index 0abe1fdf206..428668651b1 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClass.kt @@ -1,7 +1,18 @@ +// MODULE: context + +// FILE: context.kt class Test { val a: String = "foo" fun test() { - val x = 0 + val x = 0 } -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +a.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.fragment.kt deleted file mode 100644 index 805d25da792..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -a = "bar" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.kt index de507b025ca..b58984dc0e0 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutated.kt @@ -1,7 +1,18 @@ +// MODULE: context + +// FILE: context.kt class Test { var a: String = "foo" fun test() { - val x = 0 + val x = 0 } -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +a = "bar" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.fragment.kt deleted file mode 100644 index b73cd2955ac..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.fragment.kt +++ /dev/null @@ -1,2 +0,0 @@ -@Suppress("INVISIBLE_SETTER") -a = "bar" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.kt index bd463efec91..643b0eb2062 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/outerClassMutatedPrivate.kt @@ -1,7 +1,19 @@ +// MODULE: context + +// FILE: context.kt class Test { private var a: String = "foo" fun test() { - val x = 0 + val x = 0 } -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +@Suppress("INVISIBLE_SETTER") +a = "bar" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.fragment.kt deleted file mode 100644 index c2a351fdf2d..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.fragment.kt +++ /dev/null @@ -1,2 +0,0 @@ -// Need to choose public foo(Any) call instead of more specific but private call foo(Int) -a.foo(5) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.kt index cc9f27baf29..c113a7aee03 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/preferCorrectResolve.kt @@ -1,8 +1,19 @@ +// MODULE: context + +// FILE: context.kt class A { private fun foo(x: Int) = 1 + x fun foo(x: Any) = 2 } fun test(a: A) { - val x = 0 + val x = 0 } + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +// Need to choose public foo(Any) call instead of more specific but private call foo(Int) +a.foo(5) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.fragment.kt deleted file mode 100644 index 8831d5ec208..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -a.foo() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.kt index d1afb5af890..478a8c73b46 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/privateMemberCall.kt @@ -1,7 +1,18 @@ +// MODULE: context + +// FILE: context.kt class A { private fun foo() = 2 } fun test(a: A) { - val x = 0 + val x = 0 } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +a.foo() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.fragment.kt deleted file mode 100644 index 7a4277b7c32..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -useWithCtx2() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.ir.txt index 43558a1c2ab..d12f57b4578 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.ir.txt @@ -9,6 +9,6 @@ MODULE_FRAGMENT VALUE_PARAMETER name:p0 index:0 type:.Test EXPRESSION_BODY BLOCK type=kotlin.Int origin=null - CALL 'public final fun useWithCtx2 ($context_receiver_0: .Ctx2): kotlin.Int declared in .SecondClassContextReceiverKt' type=kotlin.Int origin=null + CALL 'public final fun useWithCtx2 ($context_receiver_0: .Ctx2): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null $context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField1 type:.Ctx2 visibility:private [final]' type=.Ctx2 origin=null receiver: GET_VAR 'p0: .Test declared in .CodeFragment.run' type=.Test origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.kt index bd9362e0d8c..c4cd5ecb81a 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/secondClassContextReceiver.kt @@ -1,4 +1,8 @@ // LANGUAGE: +ContextReceivers + +// MODULE: context + +// FILE: context.kt class Ctx1 class Ctx2 @@ -8,6 +12,14 @@ fun useWithCtx2() = 3 context(Ctx1, Ctx2) class Test { fun foo() { - val x = 1 + val x = 1 } } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +useWithCtx2() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.fragment.kt deleted file mode 100644 index 2625eaf32b0..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -useWithCtx1() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.ir.txt index 3b40281e4cc..a609d12342c 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.ir.txt @@ -9,6 +9,6 @@ MODULE_FRAGMENT VALUE_PARAMETER name:p0 index:0 type:.Test EXPRESSION_BODY BLOCK type=kotlin.Int origin=null - CALL 'public final fun useWithCtx1 ($context_receiver_0: .Ctx1): kotlin.Int declared in .SingleClassContextReceiverKt' type=kotlin.Int origin=null + CALL 'public final fun useWithCtx1 ($context_receiver_0: .Ctx1): kotlin.Int declared in .ContextKt' type=kotlin.Int origin=null $context_receiver_0: GET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:.Ctx1 visibility:private [final]' type=.Ctx1 origin=null receiver: GET_VAR 'p0: .Test declared in .CodeFragment.run' type=.Test origin=null diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.kt index d4261bef8e5..07ecee004c8 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/singleClassContextReceiver.kt @@ -1,4 +1,8 @@ // LANGUAGE: +ContextReceivers + +// MODULE: context + +// FILE: context.kt class Ctx1 context(Ctx1) @@ -7,6 +11,14 @@ fun useWithCtx1() = 3 context(Ctx1) class Test { fun foo() { - val x = 1 + val x = 1 } } + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +useWithCtx1() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.fragment.kt deleted file mode 100644 index 01f711e33c5..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -length + foo.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.kt index 8e989a68929..3e5c6ee81c6 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastExtensionReceiver.kt @@ -1,9 +1,12 @@ +// MODULE: context + +// FILE: context.kt fun test() { dumbWith("Hello, world!") { if (this is String) { dumbWith(Foo()) { if (this is Foo) { - val x = 0 + val x = 0 } } } @@ -16,4 +19,12 @@ inline fun dumbWith(obj: Any?, block: Any?.() -> Unit) { class Foo { val foo: String = "foo" -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +length + foo.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.fragment.kt deleted file mode 100644 index a5f6d5dcbab..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -foo.call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.kt index e78bba2024a..30cd5f96b74 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/smartCastValueParameter.kt @@ -1,9 +1,20 @@ +// MODULE: context + +// FILE: context.kt fun test(foo: Any?) { if (foo is Foo) { - val x = 0 + val x = 0 } } class Foo { fun call() {} -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +foo.call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.fragment.kt deleted file mode 100644 index 98c062d7434..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -foo?.call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.kt index 88548fbce5a..dc9ca04b29f 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/valueParameter.kt @@ -1,7 +1,18 @@ +// MODULE: context + +// FILE: context.kt fun test(foo: Foo?) { - val x = 0 + val x = 0 } class Foo { fun call() {} -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +foo?.call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.fragment.kt deleted file mode 100644 index a5f6d5dcbab..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -foo.call() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.kt index 96631577510..bcfe7325963 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.kt @@ -2,19 +2,30 @@ // MODULE: common // TARGET_PLATFORM: Common + // FILE: Common.kt package test fun test(foo: Foo) { - foo.call() + foo.call() } expect class Foo { fun call() } -// MODULE: main()()(common) + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +foo.call() + + +// MODULE: jvm()()(common) // TARGET_PLATFORM: JVM + // FILE: Jvm.kt package test diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.fragment.kt deleted file mode 100644 index 7e9668e7834..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -"foo" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.kt index a261cff5864..9b04639879b 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.kt @@ -1,6 +1,16 @@ +// MODULE: context + +// FILE: context.kt fun test() { - val x = 0 + val x = 0 } + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION // CODE_FRAGMENT_CLASS_NAME: MyCodeFragment -// CODE_FRAGMENT_METHOD_NAME: invoke \ No newline at end of file +// CODE_FRAGMENT_METHOD_NAME: invoke +"foo" \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.fragment.kt deleted file mode 100644 index 47ff212e7a3..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -text.takeUnless { it.isEmpty() }?.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.kt index eaaedc1a674..c2173e87cae 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.kt @@ -1,7 +1,18 @@ // ATTACH_DUPLICATE_STDLIB +// MODULE: context + +// FILE: context.kt fun test(text: String) { - consume(text) + consume(text) } -fun consume(text: String) {} \ No newline at end of file +fun consume(text: String) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +text.takeUnless { it.isEmpty() }?.length \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.fragment.kt deleted file mode 100644 index 97d9de345af..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.fragment.kt +++ /dev/null @@ -1,2 +0,0 @@ -fun String.ext() = this + "EXT" -"base".ext() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.kt index 118d01da074..381defa65fb 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.kt @@ -1,3 +1,15 @@ +// MODULE: context + +// FILE: context.kt fun test() { - val x = 0 -} \ No newline at end of file + val x = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +fun String.ext() = this + "EXT" +"base".ext() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.fragment.kt deleted file mode 100644 index 65ee1a33c00..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -TreeSet(File("foo").readLines()) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.kt index 0c05866ee5a..43d5d023b15 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.kt @@ -1,7 +1,17 @@ +// MODULE: context + +// FILE: context.kt import java.util.TreeSet fun test() { - val x = 0 + val x = 0 } -// CODE_FRAGMENT_IMPORT: java.io.File \ No newline at end of file + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +// CODE_FRAGMENT_IMPORT: java.io.File +TreeSet(File("foo").readLines()) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.fragment.kt deleted file mode 100644 index ac4e58e6be4..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.fragment.kt +++ /dev/null @@ -1,4 +0,0 @@ -listOf(1, 2, 3, 4, 5) - .filter { (it % 2) == 0 } - .map { it * 2 } - .forEach { System.out.println(it) } \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.kt index 118d01da074..9f7b3d4abe8 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.kt @@ -1,3 +1,17 @@ +// MODULE: context + +// FILE: context.kt fun test() { - val x = 0 -} \ No newline at end of file + val x = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +listOf(1, 2, 3, 4, 5) + .filter { (it % 2) == 0 } + .map { it * 2 } + .forEach { System.out.println(it) } \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.fragment.kt deleted file mode 100644 index 2ee51b3ab89..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -call { it * 2 } \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.ir.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.ir.txt index 122a3cca260..b4bab573cb0 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.ir.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.ir.txt @@ -1,5 +1,5 @@ MODULE_FRAGMENT - FILE fqName: fileName:inlineFunctionUsageSource.kt + FILE fqName: fileName:context.kt FUN name:call visibility:public modality:FINAL <> (block:kotlin.Function1) returnType:kotlin.Unit [inline] VALUE_PARAMETER name:block index:0 type:kotlin.Function1 BLOCK_BODY diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.kt index 60c1d28e0e7..61549fdef04 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.kt @@ -1,7 +1,18 @@ +// MODULE: context + +// FILE: context.kt fun test() { - val x = 0 + val x = 0 } inline fun call(block: (Int) -> Int) { System.out.println(block(5)) -} \ No newline at end of file +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +call { it * 2 } \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.txt index 95179b726b6..1ac4a88d308 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.txt @@ -4,4 +4,4 @@ public final class CodeFragment { public final static method run(): void } -public final class InlineFunctionUsageSourceKt +public final class ContextKt diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.fragment.kt deleted file mode 100644 index d46fca6504e..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.fragment.kt +++ /dev/null @@ -1,2 +0,0 @@ -val a = 5 -a * 2 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.kt index 543baaa2f66..c74169b23c6 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.kt @@ -1,3 +1,15 @@ +// MODULE: context + +// FILE: context.kt fun foo() { - val x = 0 -} \ No newline at end of file + val x = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +val a = 5 +a * 2 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.fragment.kt deleted file mode 100644 index ebf53c12af5..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -2 + 2 * 2 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.kt index 118d01da074..d1eb1a38e9b 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.kt @@ -1,3 +1,14 @@ +// MODULE: context + +// FILE: context.kt fun test() { - val x = 0 -} \ No newline at end of file + val x = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +2 + 2 * 2 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.fragment.kt deleted file mode 100644 index 6d9a6ec11db..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.fragment.kt +++ /dev/null @@ -1,3 +0,0 @@ -fun foo() { - 1.toString() -}} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.kt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.kt index 118d01da074..aa523901017 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.kt @@ -1,3 +1,16 @@ +// MODULE: context + +// FILE: context.kt fun test() { - val x = 0 -} \ No newline at end of file + val x = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +fun foo() { + 1.toString() +}} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.txt b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.txt index fb1f03b0485..9306c119876 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.txt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.txt @@ -1 +1 @@ -(30,31) SYNTAX Syntax error: Unexpected symbol. +(134,135) SYNTAX Syntax error: Unexpected symbol. diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.fragment.kt b/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.fragment.kt deleted file mode 100644 index 522df39531d..00000000000 --- a/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.fragment.kt +++ /dev/null @@ -1,8 +0,0 @@ -@org.jetbrains.kotlin.fir.plugin.AllOpen -class Foo { - fun call() {} -} - -class Bar : Foo() {} - -Bar().call() diff --git a/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.kt b/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.kt index 2a66682e802..954c6cc9ddc 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.kt @@ -1,5 +1,23 @@ // WITH_FIR_TEST_COMPILER_PLUGIN +// MODULE: context +// FILE: context.kt + fun test() { - val x = 0 -} \ No newline at end of file + val x = 0 +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +@org.jetbrains.kotlin.fir.plugin.AllOpen +class Foo { + fun call() {} +} + +class Bar : Foo() {} + +Bar().call() \ No newline at end of file diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtCodeFragmentModuleFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtCodeFragmentModuleFactory.kt index 4b17b0ff2b0..0762b611d0d 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtCodeFragmentModuleFactory.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/KtCodeFragmentModuleFactory.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtExpressionCodeFragment import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtTypeCodeFragment +import org.jetbrains.kotlin.psi.psiUtil.getParentOfType import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue @@ -50,10 +51,9 @@ object KtCodeFragmentModuleFactory : KtModuleFactory { error("Imports cannot be configured for type code fragments") } - val expressionMarkerProvider = testServices.expressionMarkerProvider val contextElement = contextModule.files .filterIsInstance() - .firstNotNullOfOrNull { expressionMarkerProvider.getElementOfTypeAtCaret(it, "context") } + .firstNotNullOfOrNull { findContextElement(it, testServices) } val codeFragment = when (codeFragmentKind) { CodeFragmentKind.EXPRESSION -> KtExpressionCodeFragment(project, fileName, fileText, codeFragmentImports, contextElement) @@ -69,6 +69,11 @@ object KtCodeFragmentModuleFactory : KtModuleFactory { return KtModuleWithFiles(module, listOf(codeFragment)) } + + private fun findContextElement(file: KtFile, testServices: TestServices): KtElement? { + val offset = testServices.expressionMarkerProvider.getCaretPositionOrNull(file, "context") ?: return null + return file.findElementAt(offset)?.getParentOfType(strict = false) + } } object AnalysisApiTestCodeFragmentDirectives : SimpleDirectivesContainer() { diff --git a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.fragment.kt b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.fragment.kt deleted file mode 100644 index 39cdc05dd8a..00000000000 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.fragment.kt +++ /dev/null @@ -1,7 +0,0 @@ -class Foo(val x: Int) { - fun foo() { - foo() - } -} - -Foo(1) \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.kt b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.kt index 98cc7bab0a0..41c706c5105 100644 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.kt +++ b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.kt @@ -1,3 +1,20 @@ +// MODULE: context + +// FILE: context.kt fun test() { - Unit -} \ No newline at end of file + Unit +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +class Foo(val x: Int) { + fun foo() { + foo() + } +} + +Foo(1) \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.fragment.kt b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.fragment.kt deleted file mode 100644 index 7ddbd1dc316..00000000000 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.fragment.kt +++ /dev/null @@ -1,7 +0,0 @@ -fun foo(a: Int, b: String) {} - -fun bar() { - foo(1, "foo") -} - -bar() \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.kt b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.kt index 98cc7bab0a0..73c6e5f575f 100644 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.kt +++ b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.kt @@ -1,3 +1,20 @@ +// MODULE: context + +// FILE: context.kt fun test() { - Unit -} \ No newline at end of file + Unit +} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: BLOCK +fun foo(a: Int, b: String) {} + +fun bar() { + foo(1, "foo") +} + +bar() \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.fragment.kt b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.fragment.kt deleted file mode 100644 index a9cc6a1b619..00000000000 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.fragment.kt +++ /dev/null @@ -1 +0,0 @@ -foo \ No newline at end of file diff --git a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.kt b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.kt index 87edd81e747..262ee21c44a 100644 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.kt +++ b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.kt @@ -1,10 +1,21 @@ +// MODULE: context + +// FILE: context.kt package test class Foo fun test() { val foo = Foo() - consume(foo) + consume(foo) } -fun consume(foo: Foo) {} \ No newline at end of file +fun consume(foo: Foo) {} + + +// MODULE: main +// MODULE_KIND: CodeFragment + +// FILE: fragment.kt +// CODE_FRAGMENT_KIND: EXPRESSION +foo \ No newline at end of file diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt index 0f3c4aa7520..026ee584620 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractCodeFragmentCapturingTest.kt @@ -10,33 +10,37 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDiagnosticsFor import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile import org.jetbrains.kotlin.analysis.low.level.api.fir.compile.CodeFragmentCapturedValueAnalyzer +import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator import org.jetbrains.kotlin.analysis.low.level.api.fir.util.codeFragment import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest import org.jetbrains.kotlin.analysis.test.framework.utils.indented import org.jetbrains.kotlin.diagnostics.Severity import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.renderer.FirRenderer import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase -import org.jetbrains.kotlin.psi.KtCodeFragment +import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.ConfigurationDirectives -import org.jetbrains.kotlin.test.services.TestModuleStructure +import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions -abstract class AbstractCodeFragmentCapturingTest : AbstractLowLevelApiCodeFragmentTest() { - override fun doTest(ktCodeFragment: KtCodeFragment, moduleStructure: TestModuleStructure, testServices: TestServices) { - val project = ktCodeFragment.project - val module = ProjectStructureProvider.getModule(project, ktCodeFragment, contextualModule = null) +abstract class AbstractCodeFragmentCapturingTest : AbstractAnalysisApiBasedTest() { + override val configurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false) + + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { + val project = mainFile.project + val module = ProjectStructureProvider.getModule(project, mainFile, contextualModule = null) val resolveSession = module.getFirResolveSession(project) - val firFile = ktCodeFragment.getOrBuildFirFile(resolveSession) + val firFile = mainFile.getOrBuildFirFile(resolveSession) val firCodeFragment = firFile.codeFragment firCodeFragment.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) - val frontendDiagnostics = ktCodeFragment.collectDiagnosticsForFile(resolveSession, DiagnosticCheckerFilter.ONLY_COMMON_CHECKERS) + val frontendDiagnostics = mainFile.collectDiagnosticsForFile(resolveSession, DiagnosticCheckerFilter.ONLY_COMMON_CHECKERS) val frontendErrors = frontendDiagnostics.filter { it.severity == Severity.ERROR } require(frontendErrors.isEmpty()) { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLowLevelApiCodeFragmentTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLowLevelApiCodeFragmentTest.kt deleted file mode 100644 index fcf02a71e8f..00000000000 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractLowLevelApiCodeFragmentTest.kt +++ /dev/null @@ -1,55 +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 - -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.psi.* -import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives -import org.jetbrains.kotlin.test.model.TestFile -import org.jetbrains.kotlin.test.model.TestModule -import org.jetbrains.kotlin.test.services.TestModuleStructure -import org.jetbrains.kotlin.test.services.TestServices -import org.jetbrains.kotlin.test.services.moduleStructure -import org.jetbrains.kotlin.test.services.sourceFileProvider -import java.io.File - -abstract class AbstractLowLevelApiCodeFragmentTest : AbstractAnalysisApiBasedTest() { - override val configurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false) - - abstract fun doTest(ktCodeFragment: KtCodeFragment, moduleStructure: TestModuleStructure, testServices: TestServices) - override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { - val moduleStructure = testServices.moduleStructure - val contextElement = testServices.expressionMarkerProvider.getElementOfTypeAtCaret(mainFile) - - val fragmentFile = moduleStructure.originalTestDataFiles.single() - .run { File(parent, "$nameWithoutExtension.fragment.$extension") } - - val fragmentTestFile = TestFile( - "fragment.kt", - fragmentFile.readText(), - fragmentFile, - startLineNumberInOriginalFile = 0, - isAdditional = true, - RegisteredDirectives.Empty - ) - - val processedFragmentText = testServices.sourceFileProvider.getContentOfSourceFile(fragmentTestFile) - - val isBlockFragment = processedFragmentText.any { it == '\n' } - - val project = mainFile.project - val factory = KtPsiFactory(project, markGenerated = false) - - val ktCodeFragment = when { - isBlockFragment -> factory.createBlockCodeFragment(processedFragmentText, contextElement) - else -> factory.createExpressionCodeFragment(processedFragmentText, contextElement) - } - - doTest(ktCodeFragment, moduleStructure, testServices) - } -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/AbstractCodeFragmentInBlockModificationTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/AbstractCodeFragmentInBlockModificationTest.kt index 3fe0dc20e14..18a4f292586 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/AbstractCodeFragmentInBlockModificationTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/file/structure/AbstractCodeFragmentInBlockModificationTest.kt @@ -5,23 +5,26 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure -import org.jetbrains.kotlin.analysis.low.level.api.fir.AbstractLowLevelApiCodeFragmentTest +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.psi.KtCodeFragment import org.jetbrains.kotlin.psi.KtElement -import org.jetbrains.kotlin.test.services.TestModuleStructure +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.assertions import kotlin.test.assertNull -abstract class AbstractCodeFragmentInBlockModificationTest : AbstractLowLevelApiCodeFragmentTest() { - override fun doTest(ktCodeFragment: KtCodeFragment, moduleStructure: TestModuleStructure, testServices: TestServices) { +abstract class AbstractCodeFragmentInBlockModificationTest : AbstractAnalysisApiBasedTest() { + override val configurator = AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false) + + override fun doTestByMainFile(mainFile: KtFile, mainModule: TestModule, testServices: TestServices) { val targetElement = testServices.expressionMarkerProvider - .getBottommostSelectedElementOfType(ktCodeFragment, KtElement::class.java) + .getBottommostSelectedElementOfType(mainFile, KtElement::class.java) assertNull(targetElement.getNonLocalReanalyzableContainingDeclaration()) - val actualText = testInBlockModification(ktCodeFragment, ktCodeFragment, testServices, dumpFirFile = false) + val actualText = testInBlockModification(mainFile, mainFile, testServices, dumpFirFile = false) testServices.assertions.assertEqualsToTestDataFileSibling(actualText) } 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 8c8fde2f53d..c71084c2da4 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 @@ -106,11 +106,11 @@ internal fun AnalysisApiTestGroup.generateAnalysisApiTests() { and analysisApiModeIs(AnalysisApiMode.Ide) ) { test(AbstractCompilerFacilityTest::class) { - model("compilation", pattern = TestGeneratorUtil.KT_WITHOUT_DOTS_IN_NAME) + model("compilation", pattern = TestGeneratorUtil.KT) } test(AbstractMultiModuleCompilerFacilityTest::class, filter = testModuleKindIs(TestModuleKind.Source)) { - model("compilationMultiModule", pattern = TestGeneratorUtil.KT_WITHOUT_DOTS_IN_NAME) + model("compilationMultiModule", pattern = TestGeneratorUtil.KT) } }