[Low Level FIR] do not use the same LLFirModuleLazyDeclarationResolver for the supertype computation
LLFirModuleLazyDeclarationResolver is bound to module, and should be taken from corrsponding FirSession
This commit is contained in:
+3
-3
@@ -193,7 +193,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
|
||||
phase = currentPhase,
|
||||
designation = it,
|
||||
scopeSession = scopeSession,
|
||||
lazyDeclarationResolver = this,
|
||||
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
|
||||
towerDataContextCollector = collector,
|
||||
firProviderInterceptor = null,
|
||||
checkPCE = checkPCE,
|
||||
@@ -377,7 +377,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
|
||||
phase = currentPhase,
|
||||
designation = designation,
|
||||
scopeSession = scopeSession,
|
||||
lazyDeclarationResolver = this,
|
||||
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
|
||||
towerDataContextCollector = null,
|
||||
firProviderInterceptor = null,
|
||||
checkPCE = checkPCE,
|
||||
@@ -412,7 +412,7 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
|
||||
phase = currentPhase,
|
||||
designation = designation,
|
||||
scopeSession = scopeSession,
|
||||
lazyDeclarationResolver = this,
|
||||
lockProvider = moduleComponents.globalResolveComponents.lockProvider,
|
||||
towerDataContextCollector = towerDataContextCollector,
|
||||
firProviderInterceptor = firProviderInterceptor,
|
||||
checkPCE = checkPCE,
|
||||
|
||||
+12
-9
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockPro
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.runCustomResolveUnderLock
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirModuleLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirResolvableSession
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirLazyTransformer.Companion.updatePhaseDeep
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkCanceled
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkPhase
|
||||
@@ -32,7 +33,6 @@ internal class LLFirDesignatedSupertypeResolverTransformer(
|
||||
private val designation: FirDeclarationDesignationWithFile,
|
||||
private val session: FirSession,
|
||||
private val scopeSession: ScopeSession,
|
||||
private val firLazyDeclarationResolver: LLFirModuleLazyDeclarationResolver,
|
||||
private val lockProvider: LLFirLockProvider,
|
||||
private val firProviderInterceptor: FirProviderInterceptor?,
|
||||
private val checkPCE: Boolean,
|
||||
@@ -80,14 +80,17 @@ internal class LLFirDesignatedSupertypeResolverTransformer(
|
||||
for (nowVisit in toVisit) {
|
||||
if (checkPCE) checkCanceled()
|
||||
val resolver = DesignatedFirSupertypeResolverVisitor(nowVisit)
|
||||
lockProvider.runCustomResolveUnderLock(nowVisit.firFile, checkPCE) {
|
||||
firLazyDeclarationResolver.lazyResolveFileDeclaration(
|
||||
firFile = nowVisit.firFile,
|
||||
toPhase = FirResolvePhase.IMPORTS,
|
||||
scopeSession = scopeSession,
|
||||
checkPCE = true,
|
||||
)
|
||||
nowVisit.firFile.accept(resolver, null)
|
||||
val session = nowVisit.firFile.llFirResolvableSession
|
||||
if (session != null) {
|
||||
lockProvider.runCustomResolveUnderLock(nowVisit.firFile, checkPCE) {
|
||||
session.moduleComponents.firModuleLazyDeclarationResolver.lazyResolveFileDeclaration(
|
||||
firFile = nowVisit.firFile,
|
||||
toPhase = FirResolvePhase.IMPORTS,
|
||||
scopeSession = scopeSession,
|
||||
checkPCE = checkPCE,
|
||||
)
|
||||
nowVisit.firFile.accept(resolver, null)
|
||||
}
|
||||
}
|
||||
resolver.declarationTransformer.ensureDesignationPassed()
|
||||
visited[nowVisit.declaration] = nowVisit
|
||||
|
||||
+3
-3
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirProviderInterceptor
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDeclarationDesignationWithFile
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.LLFirModuleLazyDeclarationResolver
|
||||
|
||||
internal object LazyTransformerFactory {
|
||||
@@ -17,7 +18,7 @@ internal object LazyTransformerFactory {
|
||||
phase: FirResolvePhase,
|
||||
designation: FirDeclarationDesignationWithFile,
|
||||
scopeSession: ScopeSession,
|
||||
lazyDeclarationResolver: LLFirModuleLazyDeclarationResolver,
|
||||
lockProvider: LLFirLockProvider,
|
||||
towerDataContextCollector: FirTowerDataContextCollector?,
|
||||
firProviderInterceptor: FirProviderInterceptor?,
|
||||
checkPCE: Boolean,
|
||||
@@ -31,8 +32,7 @@ internal object LazyTransformerFactory {
|
||||
designation = designation,
|
||||
session = designation.firFile.moduleData.session,
|
||||
scopeSession = scopeSession,
|
||||
firLazyDeclarationResolver = lazyDeclarationResolver,
|
||||
lockProvider = lazyDeclarationResolver.moduleComponents.globalResolveComponents.lockProvider,
|
||||
lockProvider = lockProvider,
|
||||
firProviderInterceptor = firProviderInterceptor,
|
||||
checkPCE = checkPCE,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user