Derive FirClassDeclaredMemberScopeProvider from FirSessionComponent
This commit is contained in:
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
|||||||
import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate
|
import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.AbstractConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.AbstractConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.resultType
|
import org.jetbrains.kotlin.fir.resolve.transformers.resultType
|
||||||
|
import org.jetbrains.kotlin.fir.scopes.impl.FirClassDeclaredMemberScopeProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.withReplacedConeType
|
import org.jetbrains.kotlin.fir.scopes.impl.withReplacedConeType
|
||||||
import org.jetbrains.kotlin.fir.symbols.*
|
import org.jetbrains.kotlin.fir.symbols.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
@@ -38,6 +39,7 @@ inline fun <K, V, VA : V> MutableMap<K, V>.getOrPut(key: K, defaultValue: (K) ->
|
|||||||
val FirSession.firSymbolProvider: FirSymbolProvider by componentArrayAccessor()
|
val FirSession.firSymbolProvider: FirSymbolProvider by componentArrayAccessor()
|
||||||
val FirSession.firProvider: FirProvider by componentArrayAccessor()
|
val FirSession.firProvider: FirProvider by componentArrayAccessor()
|
||||||
val FirSession.correspondingSupertypesCache: FirCorrespondingSupertypesCache by componentArrayAccessor()
|
val FirSession.correspondingSupertypesCache: FirCorrespondingSupertypesCache by componentArrayAccessor()
|
||||||
|
val FirSession.declaredMemberScopeProvider: FirClassDeclaredMemberScopeProvider by componentArrayAccessor()
|
||||||
|
|
||||||
fun ConeClassLikeLookupTag.toSymbol(useSiteSession: FirSession): FirClassLikeSymbol<*>? {
|
fun ConeClassLikeLookupTag.toSymbol(useSiteSession: FirSession): FirClassLikeSymbol<*>? {
|
||||||
val firSymbolProvider = useSiteSession.firSymbolProvider
|
val firSymbolProvider = useSiteSession.firSymbolProvider
|
||||||
|
|||||||
+4
-3
@@ -5,19 +5,20 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes.impl
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.FirSessionComponent
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.declaredMemberScopeProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirPosition
|
import org.jetbrains.kotlin.fir.scopes.FirPosition
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction.NEXT
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction.NEXT
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction.STOP
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction.STOP
|
||||||
import org.jetbrains.kotlin.fir.service
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirClassDeclaredMemberScopeProvider {
|
class FirClassDeclaredMemberScopeProvider : FirSessionComponent {
|
||||||
|
|
||||||
val cache = mutableMapOf<FirRegularClass, FirClassDeclaredMemberScope>()
|
val cache = mutableMapOf<FirRegularClass, FirClassDeclaredMemberScope>()
|
||||||
fun declaredMemberScope(klass: FirRegularClass): FirClassDeclaredMemberScope {
|
fun declaredMemberScope(klass: FirRegularClass): FirClassDeclaredMemberScope {
|
||||||
@@ -30,7 +31,7 @@ class FirClassDeclaredMemberScopeProvider {
|
|||||||
fun declaredMemberScope(klass: FirRegularClass): FirClassDeclaredMemberScope {
|
fun declaredMemberScope(klass: FirRegularClass): FirClassDeclaredMemberScope {
|
||||||
return klass
|
return klass
|
||||||
.session
|
.session
|
||||||
.service<FirClassDeclaredMemberScopeProvider>()
|
.declaredMemberScopeProvider
|
||||||
.declaredMemberScope(klass)
|
.declaredMemberScope(klass)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user