FIR: Simplify file imports scope tracking

This commit is contained in:
Denis Zharkov
2020-04-27 15:49:11 +03:00
parent 8a51bb7810
commit fee639258c
2 changed files with 3 additions and 6 deletions
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.resolve.dfa.DataFlowAnalyzerContext
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculatorForFullBodyResolve
import org.jetbrains.kotlin.fir.resolve.transformers.withScopeCleanup
import org.jetbrains.kotlin.fir.scopes.addImportingScopes
import org.jetbrains.kotlin.fir.scopes.createImportingScopes
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
@@ -48,7 +48,8 @@ open class FirBodyResolveTransformer(
context.file = file
packageFqName = file.packageFqName
return withScopeCleanup(context.fileImportsScope) {
context.fileImportsScope.addImportingScopes(file, session, components.scopeSession)
val importingScopes = createImportingScopes(file, session, components.scopeSession)
context.fileImportsScope += importingScopes
file.replaceResolvePhase(transformerPhase)
@Suppress("UNCHECKED_CAST")
transformDeclarationContent(file, data) as CompositeTransformResult<FirFile>
@@ -13,10 +13,6 @@ import org.jetbrains.kotlin.fir.resolve.scopeSessionKey
import org.jetbrains.kotlin.fir.scopes.impl.*
import org.jetbrains.kotlin.name.FqName
fun MutableList<FirScope>.addImportingScopes(file: FirFile, session: FirSession, scopeSession: ScopeSession) {
this += createImportingScopes(file, session, scopeSession)
}
private object FirDefaultStarImportingScopeKey : ScopeSessionKey<DefaultImportPriority, FirScope>()
private object FirDefaultSimpleImportingScopeKey : ScopeSessionKey<DefaultImportPriority, FirScope>()
private object FileImportingScopeKey : ScopeSessionKey<FirFile, ListStorageFirScope>()