diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt index 00ba8b05901..9fd89babe5b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt @@ -9,10 +9,10 @@ import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.scopes.FirScope -import org.jetbrains.kotlin.fir.scopes.impl.* -import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.inferenceContext +import org.jetbrains.kotlin.fir.scopes.FirScope +import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope +import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* abstract class SupertypeSupplier { @@ -37,26 +37,13 @@ fun lookupSuperTypes( } } -class ScopeSession { - private val scopes = hashMapOf, FirScope>>() - fun getOrBuild(id: ID, key: ScopeSessionKey, build: () -> FS): FS { - return scopes.getOrPut(id) { - hashMapOf() - }.getOrPut(key) { - build() - } as FS - } -} - -abstract class ScopeSessionKey - inline fun scopeSessionKey(): ScopeSessionKey { return object : ScopeSessionKey() {} } val USE_SITE = scopeSessionKey, FirScope>() -data class SubstitutionScopeKey(val type: ConeClassLikeType) : ScopeSessionKey, FirClassSubstitutionScope>() {} +data class SubstitutionScopeKey(val type: ConeClassLikeType) : ScopeSessionKey, FirClassSubstitutionScope>() fun FirClassSymbol<*>.buildUseSiteMemberScope(useSiteSession: FirSession, builder: ScopeSession): FirScope? { return when (this) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt new file mode 100644 index 00000000000..402a64f51de --- /dev/null +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/resolve/ScopeSession.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2010-2019 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.fir.resolve + +import org.jetbrains.kotlin.fir.scopes.FirScope + +class ScopeSession { + private val scopes = hashMapOf, FirScope>>() + fun getOrBuild(id: ID, key: ScopeSessionKey, build: () -> FS): FS { + return scopes.getOrPut(id) { + hashMapOf() + }.getOrPut(key) { + build() + } as FS + } +} + +abstract class ScopeSessionKey +