FIR: Cache file importing scopes
This commit is contained in:
@@ -19,11 +19,22 @@ fun MutableList<FirScope>.addImportingScopes(file: FirFile, session: FirSession,
|
||||
|
||||
private object FirDefaultStarImportingScopeKey : ScopeSessionKey<DefaultImportPriority, FirScope>()
|
||||
private object FirDefaultSimpleImportingScopeKey : ScopeSessionKey<DefaultImportPriority, FirScope>()
|
||||
private object FileImportingScopeKey : ScopeSessionKey<FirFile, ListStorageFirScope>()
|
||||
|
||||
private class ListStorageFirScope(val result: List<FirScope>) : FirScope()
|
||||
|
||||
fun createImportingScopes(
|
||||
file: FirFile,
|
||||
session: FirSession,
|
||||
scopeSession: ScopeSession
|
||||
): List<FirScope> = scopeSession.getOrBuild(file, FileImportingScopeKey) {
|
||||
ListStorageFirScope(doCreateImportingScopes(file, session, scopeSession))
|
||||
}.result
|
||||
|
||||
private fun doCreateImportingScopes(
|
||||
file: FirFile,
|
||||
session: FirSession,
|
||||
scopeSession: ScopeSession
|
||||
): List<FirScope> {
|
||||
return listOf(
|
||||
// from low priority to high priority
|
||||
|
||||
Reference in New Issue
Block a user