All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.fir.scopes.Scopes.kt Maven / Gradle / Ivy

There is a newer version: 2.0.0-RC2
Show newest version
/*
 * 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.scopes

import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.scopes.impl.*

fun MutableList.addImportingScopes(file: FirFile, session: FirSession, scopeSession: ScopeSession) {
    this += listOf(
        // from low priority to high priority
        FirDefaultStarImportingScope(session, scopeSession, priority = DefaultImportPriority.LOW),
        FirDefaultStarImportingScope(session, scopeSession, priority = DefaultImportPriority.HIGH),
        FirExplicitStarImportingScope(file.imports, session, scopeSession),
        FirDefaultSimpleImportingScope(session, scopeSession, priority = DefaultImportPriority.LOW),
        FirDefaultSimpleImportingScope(session, scopeSession, priority = DefaultImportPriority.HIGH),
        FirSelfImportingScope(file.packageFqName, session),
        // TODO: explicit simple importing scope should have highest priority (higher than inner scopes added in process)
        FirExplicitSimpleImportingScope(file.imports, session, scopeSession)
    )
}

fun FirCompositeScope.addImportingScopes(file: FirFile, session: FirSession, scopeSession: ScopeSession) {
    scopes.addImportingScopes(file, session, scopeSession)
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy