FIR: fix search scope to include kotlin libraries package parts

This commit is contained in:
Simon Ogorodnik
2019-04-15 16:49:55 +03:00
committed by Mikhail Glukhikh
parent 4cb8faf666
commit e7ea75fd81
2 changed files with 13 additions and 6 deletions
@@ -73,7 +73,8 @@ class FirResolveModularizedTotalKotlinTest : KtUsefulTestCase() {
val ktFiles = environment.getSourceFiles()
val scope = ProjectScope.getContentScope(project)
val session = createSession(environment, scope)
val librariesScope = ProjectScope.getLibrariesScope(project)
val session = createSession(environment, scope, librariesScope)
val builder = RawFirBuilder(session, stubMode = false)
val totalTransformer = FirTotalResolveTransformer()
@@ -11,23 +11,29 @@ import org.jetbrains.kotlin.fir.java.FirJavaModuleBasedSession
import org.jetbrains.kotlin.fir.java.FirLibrarySession
import org.jetbrains.kotlin.fir.java.FirProjectSessionProvider
fun createSession(environment: KotlinCoreEnvironment, sourceScope: GlobalSearchScope): FirSession {
fun createSession(
environment: KotlinCoreEnvironment,
sourceScope: GlobalSearchScope,
librariesScope: GlobalSearchScope = GlobalSearchScope.notScope(sourceScope)
): FirSession {
val moduleInfo = FirTestModuleInfo()
val project = environment.project
val provider = FirProjectSessionProvider(project)
return FirJavaModuleBasedSession(moduleInfo, provider, sourceScope).also {
createSessionForDependencies(provider, moduleInfo, sourceScope, environment)
createSessionForDependencies(provider, moduleInfo, librariesScope, environment)
}
}
private fun createSessionForDependencies(
provider: FirProjectSessionProvider,
moduleInfo: FirTestModuleInfo,
sourceScope: GlobalSearchScope,
librariesScope: GlobalSearchScope,
environment: KotlinCoreEnvironment
) {
val dependenciesInfo = FirTestModuleInfo()
moduleInfo.dependencies.add(dependenciesInfo)
val scope = GlobalSearchScope.notScope(sourceScope)
FirLibrarySession.create(dependenciesInfo, provider, scope, environment.project, environment.createPackagePartProvider(scope))
FirLibrarySession.create(
dependenciesInfo, provider, librariesScope, environment.project,
environment.createPackagePartProvider(librariesScope)
)
}