diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt index 3b0d9e3fca4..49cb88e8e5a 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt @@ -233,6 +233,7 @@ internal class KtFirScopeProvider( return when (firScope) { is FirAbstractSimpleImportingScope -> KtFirNonStarImportingScope(firScope, builder) is FirAbstractStarImportingScope -> KtFirStarImportingScope(firScope, analysisSession) + is FirDefaultStarImportingScope -> KtFirDefaultStarImportingScope(firScope, analysisSession) is FirPackageMemberScope -> createPackageScope(firScope.fqName) is FirContainingNamesAwareScope -> KtFirDelegatingNamesAwareScope(firScope, builder) else -> TODO(firScope::class.toString()) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDefaultStarImportingScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDefaultStarImportingScope.kt new file mode 100644 index 00000000000..7ac238b0346 --- /dev/null +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDefaultStarImportingScope.kt @@ -0,0 +1,39 @@ +/* + * 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.scopes + +import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession +import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion +import org.jetbrains.kotlin.analysis.api.scopes.KtScopeNameFilter +import org.jetbrains.kotlin.analysis.api.symbols.KtConstructorSymbol +import org.jetbrains.kotlin.analysis.api.symbols.KtPackageSymbol +import org.jetbrains.kotlin.fir.scopes.impl.FirDefaultStarImportingScope +import org.jetbrains.kotlin.name.Name + +internal class KtFirDefaultStarImportingScope( + firScope: FirDefaultStarImportingScope, + analysisSession: KtFirAnalysisSession, +) : KtFirBasedScope(firScope, analysisSession.firSymbolBuilder) { + + private val firstWrappedScope = KtFirStarImportingScope(firScope.first, analysisSession) + private val secondWrappedScope = KtFirStarImportingScope(firScope.second, analysisSession) + + override fun getPackageSymbols(nameFilter: KtScopeNameFilter): Sequence = withValidityAssertion { + emptySequence() + } + + override fun getConstructors(): Sequence = withValidityAssertion { emptySequence() } + + override fun getPossibleCallableNames(): Set = buildSet { + addAll(firstWrappedScope.getPossibleCallableNames()) + addAll(secondWrappedScope.getPossibleCallableNames()) + } + + override fun getPossibleClassifierNames(): Set = buildSet { + addAll(firstWrappedScope.getPossibleClassifierNames()) + addAll(secondWrappedScope.getPossibleClassifierNames()) + } +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.pretty.txt index 222aaee6e7a..e99a60b0fab 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.pretty.txt @@ -2,16 +2,15 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 + ExplicitSimpleImportingScope, index = 6, empty - 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 index a77c4a613d1..fe32527725e 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/errorImport.txt @@ -2,17 +2,16 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 + ExplicitSimpleImportingScope, index = 6, empty - ExplicitSimpleImportingScope, index = 7, empty diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.pretty.txt index 1ea61b0c6d0..3cea2c25cc7 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.pretty.txt @@ -2,19 +2,17 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 - - ExplicitSimpleImportingScope, index = 7 + ExplicitSimpleImportingScope, index = 6 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 index 309464c3c9c..a08f6a73add 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/importAlias.txt @@ -2,19 +2,17 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 - - ExplicitSimpleImportingScope, index = 7 + ExplicitSimpleImportingScope, index = 6 classifiers: 1 KtNamedClassOrObjectSymbol: annotationsList: [] diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.pretty.txt index 222aaee6e7a..e99a60b0fab 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.pretty.txt @@ -2,16 +2,15 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 + ExplicitSimpleImportingScope, index = 6, empty - 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 index a77c4a613d1..fe32527725e 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/noImports.txt @@ -2,17 +2,16 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 + ExplicitSimpleImportingScope, index = 6, empty - ExplicitSimpleImportingScope, index = 7, empty diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.pretty.txt index 1ea61b0c6d0..3cea2c25cc7 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.pretty.txt @@ -2,19 +2,17 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 - - ExplicitSimpleImportingScope, index = 7 + ExplicitSimpleImportingScope, index = 6 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 index 309464c3c9c..a08f6a73add 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/simpleImport.txt @@ -2,19 +2,17 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 + ExplicitStarImportingScope, index = 2, empty - ExplicitStarImportingScope, index = 3, empty + DefaultSimpleImportingScope, index = 3 DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 - - ExplicitSimpleImportingScope, index = 7 + ExplicitSimpleImportingScope, index = 6 classifiers: 1 KtNamedClassOrObjectSymbol: annotationsList: [] diff --git a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.pretty.txt index 5b1c1c82107..682419915be 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.pretty.txt @@ -2,20 +2,19 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 - - ExplicitStarImportingScope, index = 3 + ExplicitStarImportingScope, index = 2 classifiers: 1 class A callables: 1 fun b() + DefaultSimpleImportingScope, index = 3 + DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 + ExplicitSimpleImportingScope, index = 6, empty - 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 index e048f91040b..ec02098f5ae 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/importingScopeContext/starImport.txt @@ -2,11 +2,9 @@ implicit receivers: scopes: DefaultStarImportingScope, index = 0 - DefaultStarImportingScope, index = 1 + DefaultSimpleImportingScope, index = 1 - DefaultSimpleImportingScope, index = 2 - - ExplicitStarImportingScope, index = 3 + ExplicitStarImportingScope, index = 2 classifiers: 1 KtNamedClassOrObjectSymbol: annotationsList: [] @@ -60,11 +58,12 @@ scopes: valueParameters: [] visibility: Public + DefaultSimpleImportingScope, index = 3 + DefaultSimpleImportingScope, index = 4 - DefaultSimpleImportingScope, index = 5 + PackageMemberScope, index = 5 - PackageMemberScope, index = 6 + ExplicitSimpleImportingScope, index = 6, empty - ExplicitSimpleImportingScope, index = 7, empty diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.pretty.txt index cc70b142e54..ef725dd94fd 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.pretty.txt @@ -35,4 +35,3 @@ scopes: DefaultStarImportingScope, index = 9 - DefaultStarImportingScope, index = 10 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.txt index 6c581382e33..59ecddb3fa0 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiver.txt @@ -217,4 +217,3 @@ scopes: DefaultStarImportingScope, index = 9 - DefaultStarImportingScope, index = 10 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.pretty.txt index a22dde04d76..4ede6f1c1f4 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.pretty.txt @@ -64,4 +64,3 @@ scopes: DefaultStarImportingScope, index = 12 - DefaultStarImportingScope, index = 13 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.txt index 0ae5af1887e..f84104966e9 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/enumEntry.txt @@ -792,4 +792,3 @@ scopes: DefaultStarImportingScope, index = 12 - DefaultStarImportingScope, index = 13 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt index f08f22c4af1..16c33becaa1 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt @@ -47,4 +47,3 @@ scopes: DefaultStarImportingScope, index = 13 - DefaultStarImportingScope, index = 14 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt index e68b8c26506..9a33cbbed2c 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt @@ -363,4 +363,3 @@ scopes: DefaultStarImportingScope, index = 13 - DefaultStarImportingScope, index = 14 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.pretty.txt index 98dcde227ef..3d1711e4f57 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.pretty.txt @@ -45,5 +45,3 @@ scopes: DefaultStarImportingScope, index = 11 - DefaultStarImportingScope, index = 12 - diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.txt index 22749ed308e..ce2441d573b 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/localTypeScope.txt @@ -312,5 +312,3 @@ scopes: DefaultStarImportingScope, index = 11 - DefaultStarImportingScope, index = 12 - diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt index 9d098aa6ebb..8efb32c91bf 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt @@ -101,5 +101,4 @@ scopes: DefaultStarImportingScope, index = 19 - DefaultStarImportingScope, index = 20 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt index a4d08effd98..31bbcad8e61 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt @@ -955,5 +955,3 @@ scopes: DefaultStarImportingScope, index = 19 - DefaultStarImportingScope, index = 20 - diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDefaultStarImportingScope.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDefaultStarImportingScope.kt index 5bc7967aebf..75198b44258 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDefaultStarImportingScope.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirDefaultStarImportingScope.kt @@ -16,8 +16,8 @@ import org.jetbrains.kotlin.name.Name * @see org.jetbrains.kotlin.resolve.lazy.LazyImportScope that produces similar semantics */ class FirDefaultStarImportingScope( - private val first: FirSingleLevelDefaultStarImportingScope, - private val second: FirSingleLevelDefaultStarImportingScope, + val first: FirSingleLevelDefaultStarImportingScope, + val second: FirSingleLevelDefaultStarImportingScope, ) : FirScope(), DefaultStarImportingScopeMarker { override fun processClassifiersByNameWithSubstitution(name: Name, processor: (FirClassifierSymbol<*>, ConeSubstitutor) -> Unit) { var wasFoundAny = false