diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeDependentAnalysisSourceModuleFileImportingScopeContextTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeDependentAnalysisSourceModuleFileImportingScopeContextTestGenerated.java new file mode 100644 index 00000000000..5220fbd3085 --- /dev/null +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeDependentAnalysisSourceModuleFileImportingScopeContextTestGenerated.java @@ -0,0 +1,78 @@ +/* + * Copyright 2010-2023 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.api.fir.test.cases.generated.cases.components.scopeProvider; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.scopeProvider.AbstractFileImportingScopeContextTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext") +@TestDataPath("$PROJECT_ROOT") +public class FirIdeDependentAnalysisSourceModuleFileImportingScopeContextTestGenerated extends AbstractFileImportingScopeContextTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Dependent, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInImportingScopeContext() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("errorImport.kt") + public void testErrorImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.kt"); + } + + @Test + @TestMetadata("importAlias.kt") + public void testImportAlias() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.kt"); + } + + @Test + @TestMetadata("noImports.kt") + public void testNoImports() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.kt"); + } + + @Test + @TestMetadata("simpleImport.kt") + public void testSimpleImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.kt"); + } + + @Test + @TestMetadata("starImport.kt") + public void testStarImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.kt"); + } +} diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated.java new file mode 100644 index 00000000000..d36710f4a3e --- /dev/null +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated.java @@ -0,0 +1,78 @@ +/* + * Copyright 2010-2023 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.api.fir.test.cases.generated.cases.components.scopeProvider; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.fir.test.configurators.AnalysisApiFirTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.scopeProvider.AbstractFileImportingScopeContextTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext") +@TestDataPath("$PROJECT_ROOT") +public class FirIdeNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated extends AbstractFileImportingScopeContextTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Ide + ) + ); + } + + @Test + public void testAllFilesPresentInImportingScopeContext() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("errorImport.kt") + public void testErrorImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.kt"); + } + + @Test + @TestMetadata("importAlias.kt") + public void testImportAlias() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.kt"); + } + + @Test + @TestMetadata("noImports.kt") + public void testNoImports() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.kt"); + } + + @Test + @TestMetadata("simpleImport.kt") + public void testSimpleImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.kt"); + } + + @Test + @TestMetadata("starImport.kt") + public void testStarImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.kt"); + } +} diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractFileImportingScopeContextTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractFileImportingScopeContextTest.kt new file mode 100644 index 00000000000..a1611670ec7 --- /dev/null +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/scopeProvider/AbstractFileImportingScopeContextTest.kt @@ -0,0 +1,56 @@ +/* + * Copyright 2010-2023 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.api.impl.base.test.cases.components.scopeProvider + +import org.jetbrains.kotlin.analysis.api.KtAnalysisSession +import org.jetbrains.kotlin.analysis.api.components.KtScopeContext +import org.jetbrains.kotlin.analysis.api.components.KtScopeKind +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.scopeProvider.TestScopeRenderer.renderForTests +import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedSingleModuleTest +import org.jetbrains.kotlin.analysis.utils.printer.prettyPrint +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer +import org.jetbrains.kotlin.test.model.TestModule +import org.jetbrains.kotlin.test.services.TestServices +import org.jetbrains.kotlin.test.services.assertions +import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance + +abstract class AbstractFileImportingScopeContextTest : AbstractAnalysisApiBasedSingleModuleTest() { + override fun doTestByFileStructure(ktFiles: List, module: TestModule, testServices: TestServices) { + val ktFile = ktFiles.first() + val renderDefaultImportingScope = Directives.RENDER_DEFAULT_IMPORTING_SCOPE in module.directives + + analyseForTest(ktFile.children.firstIsInstance()) { + val ktScopeContext = ktFile.getImportingScopeContext() + + val scopeContextStringRepresentation = render(ktScopeContext, renderDefaultImportingScope) + val scopeContextStringRepresentationPretty = render(ktScopeContext, renderDefaultImportingScope, printPretty = true) + + testServices.assertions.assertEqualsToTestDataFileSibling(scopeContextStringRepresentation) + testServices.assertions.assertEqualsToTestDataFileSibling(scopeContextStringRepresentationPretty, extension = ".pretty.txt") + } + } + + context(KtAnalysisSession) + private fun render( + importingScope: KtScopeContext, + renderDefaultImportingScope: Boolean, + printPretty: Boolean = false + ): String = prettyPrint { + renderForTests(importingScope, printPretty) { ktScopeKind -> + when (ktScopeKind) { + is KtScopeKind.PackageMemberScope -> false + is KtScopeKind.DefaultSimpleImportingScope -> renderDefaultImportingScope + is KtScopeKind.DefaultStarImportingScope -> renderDefaultImportingScope + else -> true + } + } + } + + private object Directives : SimpleDirectivesContainer() { + val RENDER_DEFAULT_IMPORTING_SCOPE by directive("render default importing scope in test output") + } +} diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated.java new file mode 100644 index 00000000000..d43cce4c289 --- /dev/null +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated.java @@ -0,0 +1,78 @@ +/* + * Copyright 2010-2023 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.api.standalone.fir.test.cases.generated.cases.components.scopeProvider; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.kotlin.analysis.api.standalone.fir.test.AnalysisApiFirStandaloneModeTestConfiguratorFactory; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfiguratorFactoryData; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.TestModuleKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisSessionMode; +import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiMode; +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.scopeProvider.AbstractFileImportingScopeContextTest; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext") +@TestDataPath("$PROJECT_ROOT") +public class FirStandaloneNormalAnalysisSourceModuleFileImportingScopeContextTestGenerated extends AbstractFileImportingScopeContextTest { + @NotNull + @Override + public AnalysisApiTestConfigurator getConfigurator() { + return AnalysisApiFirStandaloneModeTestConfiguratorFactory.INSTANCE.createConfigurator( + new AnalysisApiTestConfiguratorFactoryData( + FrontendKind.Fir, + TestModuleKind.Source, + AnalysisSessionMode.Normal, + AnalysisApiMode.Standalone + ) + ); + } + + @Test + public void testAllFilesPresentInImportingScopeContext() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @Test + @TestMetadata("errorImport.kt") + public void testErrorImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.kt"); + } + + @Test + @TestMetadata("importAlias.kt") + public void testImportAlias() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.kt"); + } + + @Test + @TestMetadata("noImports.kt") + public void testNoImports() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.kt"); + } + + @Test + @TestMetadata("simpleImport.kt") + public void testSimpleImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.kt"); + } + + @Test + @TestMetadata("starImport.kt") + public void testStarImport() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.kt"); + } +} diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.kt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.kt new file mode 100644 index 00000000000..1a598363abb --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.kt @@ -0,0 +1,4 @@ +import c.b + +val a = 5 // some KtElement to analyze in the air against + diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.pretty.txt new file mode 100644 index 00000000000..222aaee6e7a --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.pretty.txt @@ -0,0 +1,17 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7, empty diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.txt new file mode 100644 index 00000000000..a77c4a613d1 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.txt @@ -0,0 +1,18 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7, empty + diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.kt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.kt new file mode 100644 index 00000000000..19a01c92ad9 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.kt @@ -0,0 +1,9 @@ +// FILE: main.kt +import other.A as AAA + +val a = 5 // some KtElement to analyze in the air against + +// FILE: other/other.kt +package other + +class A \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.pretty.txt new file mode 100644 index 00000000000..1ea61b0c6d0 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.pretty.txt @@ -0,0 +1,20 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7 + classifiers: 1 + class A + callables: 0 diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.txt new file mode 100644 index 00000000000..309464c3c9c --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.txt @@ -0,0 +1,43 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7 + classifiers: 1 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: other/A + classKind: CLASS + companionObject: null + contextReceivers: [] + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: A + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.kt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.kt new file mode 100644 index 00000000000..925b1c7cf24 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.kt @@ -0,0 +1,3 @@ +// RENDER_DEFAULT_IMPORTING_SCOPE + +val a = 5 // some KtElement to analyze in the air against \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.pretty.txt new file mode 100644 index 00000000000..222aaee6e7a --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.pretty.txt @@ -0,0 +1,17 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7, empty diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.txt new file mode 100644 index 00000000000..a77c4a613d1 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.txt @@ -0,0 +1,18 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7, empty + diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.kt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.kt new file mode 100644 index 00000000000..ae829550c3b --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.kt @@ -0,0 +1,9 @@ +// FILE: main.kt +import other.A + +val a = 5 // some KtElement to analyze in the air against + +// FILE: other/other.kt +package other + +class A \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.pretty.txt new file mode 100644 index 00000000000..1ea61b0c6d0 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.pretty.txt @@ -0,0 +1,20 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7 + classifiers: 1 + class A + callables: 0 diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.txt new file mode 100644 index 00000000000..309464c3c9c --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.txt @@ -0,0 +1,43 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3, empty + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7 + classifiers: 1 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: other/A + classKind: CLASS + companionObject: null + contextReceivers: [] + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: A + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.kt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.kt new file mode 100644 index 00000000000..ce2b18ceaf8 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.kt @@ -0,0 +1,10 @@ +// FILE: main.kt +import other.* + +val a = 5 // some KtElement to analyze in the air against + +// FILE: other/other.kt +package other + +class A +fun b() {} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.pretty.txt new file mode 100644 index 00000000000..5b1c1c82107 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.pretty.txt @@ -0,0 +1,21 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3 + classifiers: 1 + class A + callables: 1 + fun b() + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7, empty diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.txt new file mode 100644 index 00000000000..e048f91040b --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.txt @@ -0,0 +1,70 @@ +implicit receivers: +scopes: + DefaultStarImportingScope, index = 0 + + DefaultStarImportingScope, index = 1 + + DefaultSimpleImportingScope, index = 2 + + ExplicitStarImportingScope, index = 3 + classifiers: 1 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: other/A + classKind: CLASS + companionObject: null + contextReceivers: [] + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: A + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 1 + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: other/b + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isBuiltinFunctionInvoke: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: b + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Unit + symbolKind: TOP_LEVEL + typeParameters: [] + valueParameters: [] + visibility: Public + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + PackageMemberScope, index = 6 + + ExplicitSimpleImportingScope, index = 7, empty + 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 4bfdec166b8..0534713be44 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 @@ -399,6 +399,10 @@ private fun AnalysisApiTestGroup.generateAnalysisApiComponentsTests() { test(AbstractScopeContextForPositionTest::class) { model("scopeContextForPosition") } + + test(AbstractFileImportingScopeContextTest::class) { + model("importingScopeContext") + } } group(filter = analysisSessionModeIs(AnalysisSessionMode.Normal)) {