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 84119ee1671..f82128fe2b2 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 @@ -82,7 +82,7 @@ internal class KtFirScopeProvider( ) } ?: return@getOrPut getEmptyScope() - KtFirMemberScope(firScope, token, builder) + KtFirDelegatingScope(firScope, builder, token) } } @@ -90,7 +90,7 @@ internal class KtFirScopeProvider( val firScope = symbol.withFirForScope { fir -> fir.scopeProvider.getStaticScope(fir, analysisSession.rootModuleSession, ScopeSession()) } ?: return getEmptyScope() - return KtFirDelegatingScopeImpl(firScope, builder, token) + return KtFirDelegatingScope(firScope, builder, token) } override fun getDeclaredMemberScope(classSymbol: KtSymbolWithMembers): KtScope = withValidityAssertion { @@ -99,12 +99,12 @@ internal class KtFirScopeProvider( analysisSession.rootModuleSession.declaredMemberScope(it) } ?: return@getOrPut getEmptyScope() - KtFirDeclaredMemberScope(firScope, token, builder) + KtFirDelegatingScope(firScope, builder, token) } } override fun getDelegatedMemberScope(classSymbol: KtSymbolWithMembers): KtScope = withValidityAssertion { - val declaredScope = (getDeclaredMemberScope(classSymbol) as? KtFirDeclaredMemberScope)?.firScope + val declaredScope = (getDeclaredMemberScope(classSymbol) as? KtFirDelegatingScope)?.firScope ?: return delegatedMemberScopeCache.getOrPut(classSymbol) { getEmptyScope() } delegatedMemberScopeCache.getOrPut(classSymbol) { val firScope = classSymbol.withFirForScope { fir -> @@ -219,15 +219,9 @@ internal class KtFirScopeProvider( GlobalSearchScope.allScope(project), // todo analysisSession.targetPlatform ) - is FirContainingNamesAwareScope -> KtFirDelegatingScopeImpl(firScope, builder, token) - is FirMemberTypeParameterScope -> KtFirDelegatingScopeImpl(firScope, builder, token) + is FirContainingNamesAwareScope -> KtFirDelegatingScope(firScope, builder, token) + is FirMemberTypeParameterScope -> KtFirDelegatingScope(firScope, builder, token) else -> TODO(firScope::class.toString()) } } -} - -private class KtFirDelegatingScopeImpl( - override val firScope: S, - builder: KtSymbolByFirBuilder, - token: ValidityToken -) : KtFirDelegatingScope(builder, token), ValidityTokenOwner +} \ No newline at end of file diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDeclaredMemberScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDeclaredMemberScope.kt deleted file mode 100644 index eb0f9ff2edd..00000000000 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDeclaredMemberScope.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2010-2020 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.KtSymbolByFirBuilder -import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken -import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope - -internal class KtFirDeclaredMemberScope( - override val firScope: FirContainingNamesAwareScope, - token: ValidityToken, - builder: KtSymbolByFirBuilder -) : KtFirDelegatingScope(builder, token) \ No newline at end of file diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatedMemberScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatedMemberScope.kt index 01a2da3fa2b..3283405a800 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatedMemberScope.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatedMemberScope.kt @@ -13,10 +13,10 @@ import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope internal class KtFirDelegatedMemberScope( - override val firScope: FirContainingNamesAwareScope, + firScope: FirContainingNamesAwareScope, token: ValidityToken, builder: KtSymbolByFirBuilder -) : KtFirDelegatingScope(builder, token) { +) : KtFirDelegatingScope(firScope, builder, token) { override fun getCallableSymbols(nameFilter: KtScopeNameFilter): Sequence { return super.getCallableSymbols(nameFilter).filter { it.origin == KtSymbolOrigin.DELEGATED } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingScope.kt index f621102a6be..0576773fb97 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingScope.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingScope.kt @@ -22,13 +22,11 @@ import org.jetbrains.kotlin.analysis.api.symbols.KtPackageSymbol import org.jetbrains.kotlin.analysis.api.withValidityAssertion import org.jetbrains.kotlin.name.Name -internal abstract class KtFirDelegatingScope( +internal open class KtFirDelegatingScope( + val firScope: FirContainingNamesAwareScope, private val builder: KtSymbolByFirBuilder, final override val token: ValidityToken ) : KtScope { - - abstract val firScope: S - private val allNamesCached by cached { getPossibleCallableNames() + getPossibleClassifierNames() } @@ -84,13 +82,6 @@ internal fun FirScope.getCallableSymbols(callableNames: Collection, builde } } -internal class KtFirDelegatingScopeImpl( - override val firScope: S, - builder: KtSymbolByFirBuilder, - token: ValidityToken -) : KtFirDelegatingScope(builder, token) - - internal fun FirScope.getClassifierSymbols(classLikeNames: Collection, builder: KtSymbolByFirBuilder): Sequence = sequence { classLikeNames.forEach { name -> diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirMemberScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirMemberScope.kt deleted file mode 100644 index a3eb5d8306c..00000000000 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirMemberScope.kt +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2010-2020 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.ValidityTokenOwner -import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder -import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken -import org.jetbrains.kotlin.fir.scopes.FirTypeScope - -internal class KtFirMemberScope( - override val firScope: FirTypeScope, - token: ValidityToken, - builder: KtSymbolByFirBuilder -) : KtFirDelegatingScope(builder, token), ValidityTokenOwner