FirClassDeclaredMemberScope: keep cache in provider but not in ScopeSession

This commit is contained in:
Mikhail Glukhikh
2019-10-08 11:56:46 +03:00
parent dfa494a21e
commit 75a3d2fb97
2 changed files with 2 additions and 3 deletions
@@ -90,7 +90,7 @@ class JavaSymbolProvider(
visitedSymbols: MutableSet<FirClassLikeSymbol<*>>
): JavaClassUseSiteScope {
return scopeSession.getOrBuild(regularClass.symbol, JAVA_USE_SITE) {
val declaredScope = scopeSession.getOrBuild(regularClass.symbol, DECLARED) { declaredMemberScope(regularClass) }
val declaredScope = declaredMemberScope(regularClass)
val superTypeEnhancementScopes =
lookupSuperTypes(regularClass, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession)
.mapNotNull { useSiteSuperType ->
@@ -48,7 +48,6 @@ inline fun <reified T : FirScope> scopeSessionKey(): ScopeSessionKey<T> {
}
val USE_SITE = scopeSessionKey<FirScope>()
val DECLARED = scopeSessionKey<FirScope>()
data class SubstitutionScopeKey(val type: ConeClassLikeType) : ScopeSessionKey<FirClassSubstitutionScope>() {}
@@ -67,7 +66,7 @@ fun FirTypeAlias.buildUseSiteScope(useSiteSession: FirSession, builder: ScopeSes
fun FirRegularClass.buildDefaultUseSiteScope(useSiteSession: FirSession, builder: ScopeSession): FirScope {
return builder.getOrBuild(symbol, USE_SITE) {
val declaredScope = builder.getOrBuild(this.symbol, DECLARED) { declaredMemberScope(this) }
val declaredScope = declaredMemberScope(this)
val scopes = lookupSuperTypes(this, lookupInterfaces = true, deep = false, useSiteSession = useSiteSession)
.mapNotNull { useSiteSuperType ->
if (useSiteSuperType is ConeClassErrorType) return@mapNotNull null