From e001fa4e7227d5149e4fbf306b990b8d3e24df5c Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Mon, 29 Jan 2024 16:47:43 +0900 Subject: [PATCH] [Analysis API] Explicitly specify the context module in a directive --- .../codeFragments/annotationUsage.kt | 1 + .../capturing/contextReceiver.kt | 1 + .../capturing/contextReceiverExplicit.kt | 1 + .../capturing/extensionReceiver.kt | 1 + .../capturing/extensionReceiverExplicit.kt | 1 + .../capturing/extensionReceiverLabeled.kt | 1 + .../capturing/extensionReceiverProperty.kt | 1 + .../extensionReceiverPropertyExplicit.kt | 1 + .../extensionReceiverPropertyLabeled.kt | 1 + .../capturing/extensionReceiverSmartCasted.kt | 1 + .../codeFragments/capturing/initializer.kt | 1 + .../codeFragments/capturing/local.kt | 1 + .../capturing/localDelegatedProperty.kt | 1 + .../codeFragments/capturing/localFunction.kt | 1 + .../localFunctionContainingClassClosure.kt | 1 + .../localFunctionExtensionReceiverClosure.kt | 1 + .../localFunctionLambdaParameterClosure.kt | 1 + .../capturing/localFunctionLocalClosure.kt | 1 + .../localFunctionLocalClosureMutating.kt | 1 + .../localFunctionMultipleCapturing.kt | 1 + .../localFunctionParameterClosure.kt | 1 + .../codeFragments/capturing/localMutated.kt | 1 + .../codeFragments/capturing/localVariable.kt | 1 + ...ultipleClassAndFunctionContextReceivers.kt | 1 + .../multipleClassContextReceivers.kt | 1 + .../multipleFunctionContextReceivers.kt | 1 + .../capturing/nestedOuterClass.kt | 1 + .../codeFragments/capturing/objectFunction.kt | 1 + .../codeFragments/capturing/outerClass.kt | 1 + .../capturing/outerClassMutated.kt | 1 + .../capturing/outerClassMutatedPrivate.kt | 1 + .../capturing/preferCorrectResolve.kt | 1 + .../capturing/privateMemberCall.kt | 1 + .../capturing/secondClassContextReceiver.kt | 1 + .../capturing/singleClassContextReceiver.kt | 1 + .../capturing/smartCastExtensionReceiver.kt | 1 + .../capturing/smartCastValueParameter.kt | 1 + .../codeFragments/capturing/valueParameter.kt | 1 + .../codeFragments/commonContext.kt | 1 + .../compilation/codeFragments/customName.kt | 1 + .../codeFragments/duplicateLibrary.kt | 1 + .../codeFragments/fragmentFunction.kt | 1 + .../compilation/codeFragments/imports.kt | 1 + .../codeFragments/inlineFunctionUsage.kt | 1 + .../inlineFunctionUsageSource.kt | 1 + .../compilation/codeFragments/local.kt | 1 + .../compilation/codeFragments/simple.kt | 1 + .../compilation/codeFragments/syntaxError.kt | 1 + .../compilation/codeFragments/syntaxError.txt | 2 +- .../codeFragments/compilerPluginUsage.kt | 1 + .../codeFragments.kt | 1 + .../blockCodeFragment/BinaryExpression.kt | 1 + .../blockCodeFragment/CompanionCall.kt | 1 + .../blockCodeFragment/ContextFunctionCall.kt | 1 + .../blockCodeFragment/FunctionCall.kt | 1 + .../blockCodeFragment/LocalFunctionCall.kt | 1 + .../blockCodeFragment/NestedCodeFragment.kt | 2 ++ .../NestedCodeFragmentClass.kt | 2 ++ .../NestedCodeFragmentClassMember.kt | 2 ++ .../NestedCodeFragmentFunction.kt | 2 ++ .../blockCodeFragment/PropertyCall.kt | 1 + .../blockCodeFragment/SecondStatement.kt | 1 + .../BinaryExpression.kt | 1 + .../expressionCodeFragment/CompanionCall.kt | 1 + .../ContextFunctionCall.kt | 1 + .../expressionCodeFragment/FunctionCall.kt | 1 + .../LocalFunctionCall.kt | 1 + .../NestedCodeFragment.kt | 2 ++ .../NestedCodeFragmentUsage.kt | 2 ++ .../expressionCodeFragment/PropertyCall.kt | 1 + .../typeCodeFragment/FromContextFile.kt | 1 + .../typeCodeFragment/FromContextModule.kt | 1 + .../typeCodeFragment/GenericType.kt | 1 + .../typeCodeFragment/GenericTypeArgument.kt | 1 + .../typeCodeFragment/LocalClass.kt | 1 + .../typeCodeFragment/LocalClass.txt | 2 ++ .../codeFragment/typeCodeFragment/Simple.kt | 1 + .../typeCodeFragment/TypeAnnotation.kt | 1 + .../framework/AnalysisApiTestDirectives.kt | 5 +++ .../structure/KtCodeFragmentModuleFactory.kt | 2 +- .../structure/TestModuleStructureFactory.kt | 33 +++++++++++++------ .../codeFragments/localClass.kt | 1 + .../codeFragments/localFunction.kt | 1 + .../codeFragments/simple.kt | 1 + 84 files changed, 117 insertions(+), 12 deletions(-) create mode 100644 analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.txt 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 b9e1bd125c1..8bd8a7fd8f4 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/annotationUsage.kt @@ -22,6 +22,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 8fab7613d5c..e5e14b5dbc8 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 @@ -21,6 +21,7 @@ class Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 f88e98a971e..fe212debcc3 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 @@ -21,6 +21,7 @@ class Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 28be84cf070..e985274fc78 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 @@ -15,6 +15,7 @@ class Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 5d1110cf9e0..c2144b31f43 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 @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 dac2ba28aa4..450139a3949 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 @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 65335a90fa0..2b127793baa 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 @@ -13,6 +13,7 @@ val Int.ext: String // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 64440ff2f9c..2420aab1e1e 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 @@ -13,6 +13,7 @@ val Int.ext: String // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 3f53247f311..9d2e8ca8aea 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 @@ -13,6 +13,7 @@ val Int.ext: String // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 e3086bb6d5b..577f962b781 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 @@ -18,6 +18,7 @@ fun main() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 f30dd790292..f34a5f5ee5d 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 @@ -10,6 +10,7 @@ class Foo(a: Int, b: String) { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 784c7bdaff0..569860a113e 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 @@ -9,6 +9,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 db411c329ef..d353ddf17fb 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 @@ -21,6 +21,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 4f55943e659..ae827637fe7 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 @@ -14,6 +14,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 83976d85c05..823571b0c0a 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 @@ -16,6 +16,7 @@ fun consume(obj: Foo) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 0d3ef6063cb..3ae47ca8fe1 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 @@ -20,6 +20,7 @@ fun consume(text: String) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 cd619b01193..c2a49dbb6c7 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 @@ -20,6 +20,7 @@ fun consume(text: String) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 544ee3197f8..d0b705378d2 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 @@ -16,6 +16,7 @@ fun consume(n: Int) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 c11e83023a9..19c03db0cbb 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 @@ -14,6 +14,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 8f75391b951..a9a94a38ce9 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 @@ -21,6 +21,7 @@ fun consume(obj: Any) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 236b2814c18..bc017227697 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 @@ -14,6 +14,7 @@ fun consume(n: Int) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 d87d551fbc8..58b36b2e576 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 @@ -9,6 +9,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 fed1bfc4a73..c53102b7792 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 @@ -9,6 +9,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 e5563196454..d4c2ef5722c 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 @@ -22,6 +22,7 @@ class Test { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 928c9ddf2fc..1f010ea6ec7 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 @@ -19,6 +19,7 @@ class Test { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 9fb80a264d2..dced6158370 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 @@ -17,6 +17,7 @@ fun foo() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 59a1b8280ea..93c76d619b5 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 @@ -24,6 +24,7 @@ fun callString(string: String): Int { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 57c36612ce0..8264f5f9184 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 @@ -12,6 +12,7 @@ object Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 428668651b1..498fcbb4a6b 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 @@ -12,6 +12,7 @@ class Test { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 b58984dc0e0..7546a29b71f 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 @@ -12,6 +12,7 @@ class Test { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 643b0eb2062..1df66767d5a 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 @@ -12,6 +12,7 @@ class Test { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 c113a7aee03..f76b9e2f5f8 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 @@ -12,6 +12,7 @@ fun test(a: A) { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 478a8c73b46..8211509bab2 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 @@ -12,6 +12,7 @@ fun test(a: A) { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 c4cd5ecb81a..b6675eeff29 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 @@ -19,6 +19,7 @@ class Test { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 07ecee004c8..83c12a0d270 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 @@ -18,6 +18,7 @@ class Test { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 3e5c6ee81c6..015364101ee 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 @@ -24,6 +24,7 @@ class Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 30cd5f96b74..c5436e9ed71 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 @@ -14,6 +14,7 @@ class Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 dc9ca04b29f..41143726711 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 @@ -12,6 +12,7 @@ class Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 bcfe7325963..9284155f53a 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/commonContext.kt @@ -17,6 +17,7 @@ expect class Foo { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: common // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 9b04639879b..db7c985f88d 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/customName.kt @@ -8,6 +8,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 c2173e87cae..9c13ebf56b5 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/duplicateLibrary.kt @@ -12,6 +12,7 @@ fun consume(text: String) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 381defa65fb..2c25c4a6074 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/fragmentFunction.kt @@ -8,6 +8,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 43d5d023b15..a55b89ac8d1 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/imports.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 9f7b3d4abe8..7f5f0ae8c15 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsage.kt @@ -8,6 +8,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 61549fdef04..e6d263be978 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/inlineFunctionUsageSource.kt @@ -12,6 +12,7 @@ inline fun call(block: (Int) -> Int) { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 c74169b23c6..367a7a3457d 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/local.kt @@ -8,6 +8,7 @@ fun foo() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 d1eb1a38e9b..6bb5a9f4356 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/simple.kt @@ -8,6 +8,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION 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 aa523901017..645b1773f15 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/syntaxError.kt @@ -8,6 +8,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 9306c119876..c8957abc2b6 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 @@ -(134,135) SYNTAX Syntax error: Unexpected symbol. +(161,162) SYNTAX Syntax error: Unexpected symbol. 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 954c6cc9ddc..9dda510ce74 100644 --- a/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.kt +++ b/analysis/analysis-api/testData/components/compilerFacility/compilationMultiModule/codeFragments/compilerPluginUsage.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/codeFragments.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/codeFragments.kt index 2eb8fb14cb0..7ba4660175a 100644 --- a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/codeFragments.kt +++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/codeFragments.kt @@ -10,6 +10,7 @@ fun foo() {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: main.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/BinaryExpression.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/BinaryExpression.kt index 769aca1cf83..7c2ac8ce5b2 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/BinaryExpression.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/BinaryExpression.kt @@ -13,6 +13,7 @@ val b: Int = 5 // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/CompanionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/CompanionCall.kt index 5df26c9d520..05e032e7ae7 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/CompanionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/CompanionCall.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/ContextFunctionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/ContextFunctionCall.kt index 2e3010e56f4..81ebd9c10da 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/ContextFunctionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/ContextFunctionCall.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/FunctionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/FunctionCall.kt index 480e047bb9a..24792367b3a 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/FunctionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/FunctionCall.kt @@ -12,6 +12,7 @@ fun foo() {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/LocalFunctionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/LocalFunctionCall.kt index 9c4501b3ef6..c80161d825b 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/LocalFunctionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/LocalFunctionCall.kt @@ -11,6 +11,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragment.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragment.kt index 5b872051e11..fddc237748a 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragment.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragment.kt @@ -13,6 +13,7 @@ fun bar() {} // MODULE: contextFragment // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: contextFragment.kt // CODE_FRAGMENT_KIND: EXPRESSION @@ -20,6 +21,7 @@ fun bar() {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: contextFragment // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClass.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClass.kt index 9bff68f6b40..77c5f8a8c8b 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClass.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClass.kt @@ -12,6 +12,7 @@ fun foo() {} // MODULE: contextFragment // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: contextFragment.kt // CODE_FRAGMENT_KIND: BLOCK @@ -20,6 +21,7 @@ class Local {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: contextFragment // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClassMember.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClassMember.kt index d6d1f13ba11..a41a95c9b83 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClassMember.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentClassMember.kt @@ -12,6 +12,7 @@ fun foo() {} // MODULE: contextFragment // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: contextFragment.kt // CODE_FRAGMENT_KIND: BLOCK @@ -24,6 +25,7 @@ class Local { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: contextFragment // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentFunction.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentFunction.kt index ffd92b4a3b7..e2f590e9610 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentFunction.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/NestedCodeFragmentFunction.kt @@ -12,6 +12,7 @@ fun foo() {} // MODULE: contextFragment // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: contextFragment.kt // CODE_FRAGMENT_KIND: BLOCK @@ -20,6 +21,7 @@ fun bar() {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: contextFragment // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/PropertyCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/PropertyCall.kt index c0345a5b717..0912e422714 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/PropertyCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/PropertyCall.kt @@ -12,6 +12,7 @@ val foo = "foo" // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/SecondStatement.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/SecondStatement.kt index 825bcdca4af..db0a70e1784 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/SecondStatement.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/blockCodeFragment/SecondStatement.kt @@ -13,6 +13,7 @@ fun bar() {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/BinaryExpression.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/BinaryExpression.kt index ae041736001..6a739bb2b85 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/BinaryExpression.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/BinaryExpression.kt @@ -13,6 +13,7 @@ val b: Int = 5 // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/CompanionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/CompanionCall.kt index dd87114066a..2899f1dd6d3 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/CompanionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/CompanionCall.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/ContextFunctionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/ContextFunctionCall.kt index 6f421b165c2..3eb57145e33 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/ContextFunctionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/ContextFunctionCall.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/FunctionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/FunctionCall.kt index 7e3f1938268..312f06ef421 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/FunctionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/FunctionCall.kt @@ -12,6 +12,7 @@ fun foo() {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/LocalFunctionCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/LocalFunctionCall.kt index bb57dd5ff4b..9c433454d2a 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/LocalFunctionCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/LocalFunctionCall.kt @@ -11,6 +11,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragment.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragment.kt index dda6f94a5bc..2c4e729ffb3 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragment.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragment.kt @@ -13,6 +13,7 @@ fun bar() {} // MODULE: contextFragment // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: contextFragment.kt // CODE_FRAGMENT_KIND: EXPRESSION @@ -20,6 +21,7 @@ fun bar() {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: contextFragment // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragmentUsage.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragmentUsage.kt index 8c0efd10e34..9b3bf3f097c 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragmentUsage.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/NestedCodeFragmentUsage.kt @@ -12,6 +12,7 @@ fun foo() {} // MODULE: contextFragment // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: contextFragment.kt // CODE_FRAGMENT_KIND: EXPRESSION @@ -23,6 +24,7 @@ object { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: contextFragment // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/PropertyCall.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/PropertyCall.kt index 422cf775bc8..1e0206e22a9 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/PropertyCall.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/expressionCodeFragment/PropertyCall.kt @@ -12,6 +12,7 @@ val foo = "foo" // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextFile.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextFile.kt index e4974629213..e082c6b8dec 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextFile.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextFile.kt @@ -12,6 +12,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: TYPE diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextModule.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextModule.kt index fa03f683fff..7f45ee70794 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextModule.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/FromContextModule.kt @@ -13,6 +13,7 @@ object Foo // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: TYPE diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericType.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericType.kt index 33a7215c4a6..eaf2a959a3f 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericType.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericType.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: TYPE diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericTypeArgument.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericTypeArgument.kt index a0808fbce91..57dbfc92be4 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericTypeArgument.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/GenericTypeArgument.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: TYPE diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.kt index 7b063a30fcc..eaaf116a58d 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.kt @@ -12,6 +12,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: TYPE diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.txt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.txt new file mode 100644 index 00000000000..4a2e9cd6699 --- /dev/null +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/LocalClass.txt @@ -0,0 +1,2 @@ +Resolved to: +0: (in : test) class Local diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/Simple.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/Simple.kt index 51b885be4e0..1f6f663d50e 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/Simple.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/Simple.kt @@ -10,6 +10,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: TYPE diff --git a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/TypeAnnotation.kt b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/TypeAnnotation.kt index df2b20f9ab8..94eb84f80eb 100644 --- a/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/TypeAnnotation.kt +++ b/analysis/analysis-api/testData/referenceResolve/codeFragment/typeCodeFragment/TypeAnnotation.kt @@ -13,6 +13,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: TYPE diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/AnalysisApiTestDirectives.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/AnalysisApiTestDirectives.kt index 3882c03366f..a14a75517f1 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/AnalysisApiTestDirectives.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/AnalysisApiTestDirectives.kt @@ -34,4 +34,9 @@ object AnalysisApiTestDirectives : SimpleDirectivesContainer() { description = "Mark the module as main", applicability = DirectiveApplicability.Module, ) + + val CONTEXT_MODULE by stringDirective( + description = "Specifies the module name which should be treated as a context module for the current one", + applicability = DirectiveApplicability.Module + ) } 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 0762b611d0d..2c410be125f 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 @@ -31,7 +31,7 @@ object KtCodeFragmentModuleFactory : KtModuleFactory { testServices: TestServices, project: Project, ): KtModuleWithFiles { - requireNotNull(contextModule) { "Context module should precede the code fragment module" } + requireNotNull(contextModule) { "Code fragment requires a context module" } val testFile = testModule.files.singleOrNull() ?: error("A single file is expected for a code fragment module") diff --git a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt index eece9606431..e9334e842d1 100644 --- a/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt +++ b/analysis/analysis-test-framework/tests/org/jetbrains/kotlin/analysis/test/framework/project/structure/TestModuleStructureFactory.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.analysis.project.structure.KtBinaryModule import org.jetbrains.kotlin.analysis.project.structure.KtDanglingFileModule import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.analysis.project.structure.KtNotUnderContentRootModule +import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestDirectives import org.jetbrains.kotlin.analysis.test.framework.services.environmentManager import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot @@ -25,6 +26,7 @@ import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.js.JsPlatforms import org.jetbrains.kotlin.platform.jvm.JvmPlatforms import org.jetbrains.kotlin.platform.jvm.isJvm +import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue import org.jetbrains.kotlin.test.model.DependencyRelation import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.* @@ -46,9 +48,7 @@ object TestModuleStructureFactory { testServices: TestServices, project: Project ): KtModuleProjectStructure { - val modules = moduleStructure.modules.mapWithPrevious { contextModule, testModule -> - testServices.getKtModuleFactoryForTestModule(testModule).createModule(testModule, contextModule, testServices, project) - } + val modules = createModules(moduleStructure, testServices, project) val modulesByName = modules.associateByName() @@ -64,14 +64,27 @@ object TestModuleStructureFactory { return KtModuleProjectStructure(modules, libraryCache.values) } - private fun List.mapWithPrevious(transform: (R?, T) -> R): List { - val result = ArrayList(this.size) - var previousResult: R? = null - for (item in this) { - val newResult = transform(previousResult, item) - result.add(newResult) - previousResult = newResult + private fun createModules( + moduleStructure: TestModuleStructure, + testServices: TestServices, + project: Project + ): List { + val moduleCount = moduleStructure.modules.size + val existingModules = HashMap(moduleCount) + val result = ArrayList(moduleCount) + + for (testModule in moduleStructure.modules) { + val contextModuleName = testModule.directives.singleOrZeroValue(AnalysisApiTestDirectives.CONTEXT_MODULE) + val contextModule = contextModuleName?.let(existingModules::getValue) + + val moduleWithFiles = testServices + .getKtModuleFactoryForTestModule(testModule) + .createModule(testModule, contextModule, testServices, project) + + existingModules[testModule.name] = moduleWithFiles + result.add(moduleWithFiles) } + return result } 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 41c706c5105..d9c1b831520 100644 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.kt +++ b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localClass.kt @@ -8,6 +8,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 73c6e5f575f..87898b0ccfc 100644 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.kt +++ b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/localFunction.kt @@ -8,6 +8,7 @@ fun test() { // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: BLOCK 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 262ee21c44a..e0b08137ae8 100644 --- a/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.kt +++ b/analysis/low-level-api-fir/testData/inBlockModification/codeFragments/simple.kt @@ -15,6 +15,7 @@ fun consume(foo: Foo) {} // MODULE: main // MODULE_KIND: CodeFragment +// CONTEXT_MODULE: context // FILE: fragment.kt // CODE_FRAGMENT_KIND: EXPRESSION