[FIR IDE] Remove session scope default parameter from lazy resolve interface
This commit is contained in:
+4
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
|||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.realPsi
|
import org.jetbrains.kotlin.fir.realPsi
|
||||||
import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
||||||
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
||||||
@@ -108,6 +109,7 @@ internal class FirModuleResolveStateImpl(
|
|||||||
|
|
||||||
firLazyDeclarationResolver.lazyResolveDeclaration(
|
firLazyDeclarationResolver.lazyResolveDeclaration(
|
||||||
firDeclarationToResolve = nonLocalFirForNamedDeclaration,
|
firDeclarationToResolve = nonLocalFirForNamedDeclaration,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
moduleFileCache = (nonLocalFirForNamedDeclaration.moduleData.session as FirIdeSourcesSession).cache,
|
moduleFileCache = (nonLocalFirForNamedDeclaration.moduleData.session as FirIdeSourcesSession).cache,
|
||||||
toPhase = FirResolvePhase.BODY_RESOLVE,
|
toPhase = FirResolvePhase.BODY_RESOLVE,
|
||||||
checkPCE = false, /*TODO*/
|
checkPCE = false, /*TODO*/
|
||||||
@@ -150,6 +152,7 @@ internal class FirModuleResolveStateImpl(
|
|||||||
firLazyDeclarationResolver.lazyResolveDeclaration(
|
firLazyDeclarationResolver.lazyResolveDeclaration(
|
||||||
firDeclarationToResolve = declaration,
|
firDeclarationToResolve = declaration,
|
||||||
moduleFileCache = fileCache,
|
moduleFileCache = fileCache,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
toPhase = toPhase,
|
toPhase = toPhase,
|
||||||
checkPCE = true,
|
checkPCE = true,
|
||||||
)
|
)
|
||||||
@@ -165,6 +168,7 @@ internal class FirModuleResolveStateImpl(
|
|||||||
firLazyDeclarationResolver.lazyResolveDeclaration(
|
firLazyDeclarationResolver.lazyResolveDeclaration(
|
||||||
firDeclaration = declaration,
|
firDeclaration = declaration,
|
||||||
moduleFileCache = fileCache,
|
moduleFileCache = fileCache,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
toResolveType = type,
|
toResolveType = type,
|
||||||
checkPCE = true,
|
checkPCE = true,
|
||||||
)
|
)
|
||||||
|
|||||||
+2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api
|
|||||||
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
|
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseManager
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseManager
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
|
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
|
||||||
@@ -30,6 +31,7 @@ internal class IdeFirPhaseManager(
|
|||||||
lazyDeclarationResolver.lazyResolveDeclaration(
|
lazyDeclarationResolver.lazyResolveDeclaration(
|
||||||
firDeclarationToResolve = fir,
|
firDeclarationToResolve = fir,
|
||||||
moduleFileCache = cache,
|
moduleFileCache = cache,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
toPhase = requiredPhase,
|
toPhase = requiredPhase,
|
||||||
checkPCE = true
|
checkPCE = true
|
||||||
)
|
)
|
||||||
|
|||||||
+1
@@ -138,6 +138,7 @@ object LowLevelFirApiFacadeForResolveOnAir {
|
|||||||
state.firLazyDeclarationResolver.lazyResolveFileDeclaration(
|
state.firLazyDeclarationResolver.lazyResolveFileDeclaration(
|
||||||
firFile = firFile,
|
firFile = firFile,
|
||||||
moduleFileCache = session.cache,
|
moduleFileCache = session.cache,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
toPhase = FirResolvePhase.IMPORTS
|
toPhase = FirResolvePhase.IMPORTS
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+1
@@ -119,6 +119,7 @@ internal class FileStructure private constructor(
|
|||||||
firLazyDeclarationResolver.lazyResolveDeclaration(
|
firLazyDeclarationResolver.lazyResolveDeclaration(
|
||||||
firDeclarationToResolve = firDeclaration,
|
firDeclarationToResolve = firDeclaration,
|
||||||
moduleFileCache = moduleFileCache,
|
moduleFileCache = moduleFileCache,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
toPhase = FirResolvePhase.BODY_RESOLVE,
|
toPhase = FirResolvePhase.BODY_RESOLVE,
|
||||||
checkPCE = true,
|
checkPCE = true,
|
||||||
)
|
)
|
||||||
|
|||||||
+5
-2
@@ -9,6 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.psi
|
import org.jetbrains.kotlin.fir.psi
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||||
@@ -120,7 +121,7 @@ internal class ReanalyzableFunctionStructureElement(
|
|||||||
val originalFunction = firSymbol.fir as FirSimpleFunction
|
val originalFunction = firSymbol.fir as FirSimpleFunction
|
||||||
val designation = originalFunction.collectDesignation()
|
val designation = originalFunction.collectDesignation()
|
||||||
|
|
||||||
val temporaryFunction = RawFirNonLocalDeclarationBuilder.buildWithRebind(
|
val temporaryFunction = RawFirNonLocalDeclarationBuilder.buildWithFunctionSymbolRebind(
|
||||||
session = originalFunction.moduleData.session,
|
session = originalFunction.moduleData.session,
|
||||||
scopeProvider = originalFunction.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
scopeProvider = originalFunction.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
||||||
designation = designation,
|
designation = designation,
|
||||||
@@ -142,6 +143,7 @@ internal class ReanalyzableFunctionStructureElement(
|
|||||||
firLazyDeclarationResolver.lazyResolveDeclaration(
|
firLazyDeclarationResolver.lazyResolveDeclaration(
|
||||||
firDeclarationToResolve = originalFunction,
|
firDeclarationToResolve = originalFunction,
|
||||||
moduleFileCache = cache,
|
moduleFileCache = cache,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
toPhase = FirResolvePhase.BODY_RESOLVE,
|
toPhase = FirResolvePhase.BODY_RESOLVE,
|
||||||
checkPCE = true,
|
checkPCE = true,
|
||||||
declarationPhaseDowngraded = true,
|
declarationPhaseDowngraded = true,
|
||||||
@@ -176,7 +178,7 @@ internal class ReanalyzablePropertyStructureElement(
|
|||||||
val originalProperty = firSymbol.fir
|
val originalProperty = firSymbol.fir
|
||||||
val designation = originalProperty.collectDesignation()
|
val designation = originalProperty.collectDesignation()
|
||||||
|
|
||||||
val temporaryProperty = RawFirNonLocalDeclarationBuilder.buildWithRebind(
|
val temporaryProperty = RawFirNonLocalDeclarationBuilder.buildWithFunctionSymbolRebind(
|
||||||
session = originalProperty.moduleData.session,
|
session = originalProperty.moduleData.session,
|
||||||
scopeProvider = originalProperty.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
scopeProvider = originalProperty.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
||||||
designation = designation,
|
designation = designation,
|
||||||
@@ -201,6 +203,7 @@ internal class ReanalyzablePropertyStructureElement(
|
|||||||
firLazyDeclarationResolver.lazyResolveDeclaration(
|
firLazyDeclarationResolver.lazyResolveDeclaration(
|
||||||
firDeclarationToResolve = originalProperty,
|
firDeclarationToResolve = originalProperty,
|
||||||
moduleFileCache = cache,
|
moduleFileCache = cache,
|
||||||
|
scopeSession = ScopeSession(),
|
||||||
toPhase = FirResolvePhase.BODY_RESOLVE,
|
toPhase = FirResolvePhase.BODY_RESOLVE,
|
||||||
checkPCE = true,
|
checkPCE = true,
|
||||||
declarationPhaseDowngraded = true,
|
declarationPhaseDowngraded = true,
|
||||||
|
|||||||
+3
-3
@@ -34,7 +34,7 @@ internal object FirLazyBodiesCalculator {
|
|||||||
fun calculateLazyBodiesForFunction(designation: FirDeclarationDesignation) {
|
fun calculateLazyBodiesForFunction(designation: FirDeclarationDesignation) {
|
||||||
val simpleFunction = designation.declaration as FirSimpleFunction
|
val simpleFunction = designation.declaration as FirSimpleFunction
|
||||||
if (simpleFunction.body !is FirLazyBlock) return
|
if (simpleFunction.body !is FirLazyBlock) return
|
||||||
val newFunction = RawFirNonLocalDeclarationBuilder.buildWithRebind(
|
val newFunction = RawFirNonLocalDeclarationBuilder.buildWithFunctionSymbolRebind(
|
||||||
session = simpleFunction.moduleData.session,
|
session = simpleFunction.moduleData.session,
|
||||||
scopeProvider = simpleFunction.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
scopeProvider = simpleFunction.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
||||||
designation = designation,
|
designation = designation,
|
||||||
@@ -51,7 +51,7 @@ internal object FirLazyBodiesCalculator {
|
|||||||
require(!secondaryConstructor.isPrimary)
|
require(!secondaryConstructor.isPrimary)
|
||||||
if (secondaryConstructor.body !is FirLazyBlock) return
|
if (secondaryConstructor.body !is FirLazyBlock) return
|
||||||
|
|
||||||
val newFunction = RawFirNonLocalDeclarationBuilder.buildWithRebind(
|
val newFunction = RawFirNonLocalDeclarationBuilder.buildWithFunctionSymbolRebind(
|
||||||
session = secondaryConstructor.moduleData.session,
|
session = secondaryConstructor.moduleData.session,
|
||||||
scopeProvider = secondaryConstructor.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
scopeProvider = secondaryConstructor.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
||||||
designation = designation,
|
designation = designation,
|
||||||
@@ -67,7 +67,7 @@ internal object FirLazyBodiesCalculator {
|
|||||||
val firProperty = designation.declaration as FirProperty
|
val firProperty = designation.declaration as FirProperty
|
||||||
if (!needCalculatingLazyBodyForProperty(firProperty)) return
|
if (!needCalculatingLazyBodyForProperty(firProperty)) return
|
||||||
|
|
||||||
val newProperty = RawFirNonLocalDeclarationBuilder.buildWithRebind(
|
val newProperty = RawFirNonLocalDeclarationBuilder.buildWithFunctionSymbolRebind(
|
||||||
session = firProperty.moduleData.session,
|
session = firProperty.moduleData.session,
|
||||||
scopeProvider = firProperty.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
scopeProvider = firProperty.moduleData.session.firIdeProvider.kotlinScopeProvider,
|
||||||
designation = designation,
|
designation = designation,
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ internal fun FirLazyDeclarationResolver.lazyResolveDeclaration(
|
|||||||
firDeclaration: FirDeclaration,
|
firDeclaration: FirDeclaration,
|
||||||
moduleFileCache: ModuleFileCache,
|
moduleFileCache: ModuleFileCache,
|
||||||
toResolveType: ResolveType,
|
toResolveType: ResolveType,
|
||||||
scopeSession: ScopeSession = ScopeSession(),
|
scopeSession: ScopeSession,
|
||||||
checkPCE: Boolean = false,
|
checkPCE: Boolean = false,
|
||||||
) {
|
) {
|
||||||
when (toResolveType) {
|
when (toResolveType) {
|
||||||
|
|||||||
+2
-2
@@ -108,7 +108,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
|
|||||||
firFile: FirFile,
|
firFile: FirFile,
|
||||||
moduleFileCache: ModuleFileCache,
|
moduleFileCache: ModuleFileCache,
|
||||||
toPhase: FirResolvePhase,
|
toPhase: FirResolvePhase,
|
||||||
scopeSession: ScopeSession = ScopeSession(),
|
scopeSession: ScopeSession,
|
||||||
checkPCE: Boolean = false,
|
checkPCE: Boolean = false,
|
||||||
) {
|
) {
|
||||||
moduleFileCache.firFileLockProvider.runCustomResolveUnderLock(firFile, checkPCE) {
|
moduleFileCache.firFileLockProvider.runCustomResolveUnderLock(firFile, checkPCE) {
|
||||||
@@ -186,7 +186,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
|
|||||||
fun lazyResolveDeclaration(
|
fun lazyResolveDeclaration(
|
||||||
firDeclarationToResolve: FirDeclaration,
|
firDeclarationToResolve: FirDeclaration,
|
||||||
moduleFileCache: ModuleFileCache,
|
moduleFileCache: ModuleFileCache,
|
||||||
scopeSession: ScopeSession = ScopeSession(),
|
scopeSession: ScopeSession,
|
||||||
toPhase: FirResolvePhase,
|
toPhase: FirResolvePhase,
|
||||||
checkPCE: Boolean,
|
checkPCE: Boolean,
|
||||||
declarationPhaseDowngraded: Boolean = false,
|
declarationPhaseDowngraded: Boolean = false,
|
||||||
|
|||||||
+1
-1
@@ -46,7 +46,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun buildWithRebind(
|
fun buildWithFunctionSymbolRebind(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
scopeProvider: FirScopeProvider,
|
scopeProvider: FirScopeProvider,
|
||||||
designation: FirDeclarationDesignation,
|
designation: FirDeclarationDesignation,
|
||||||
|
|||||||
+2
@@ -54,5 +54,7 @@ internal class FirFileAnnotationsResolveTransformer(
|
|||||||
check(annotations.all { it.resolveStatus == FirAnnotationResolveStatus.Resolved }) { "Annotation was not resolved" }
|
check(annotations.all { it.resolveStatus == FirAnnotationResolveStatus.Resolved }) { "Annotation was not resolved" }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun ensureResolved(declaration: FirDeclaration) = error("Not implemented")
|
||||||
|
|
||||||
override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = false
|
override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = false
|
||||||
}
|
}
|
||||||
+2
-1
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation
|
|||||||
|
|
||||||
internal interface FirLazyTransformerForIDE {
|
internal interface FirLazyTransformerForIDE {
|
||||||
fun transformDeclaration(phaseRunner: FirPhaseRunner)
|
fun transformDeclaration(phaseRunner: FirPhaseRunner)
|
||||||
fun ensureResolved(declaration: FirDeclaration): Unit = error("Not implemented")
|
fun ensureResolved(declaration: FirDeclaration)
|
||||||
fun ensureResolvedDeep(declaration: FirDeclaration) {
|
fun ensureResolvedDeep(declaration: FirDeclaration) {
|
||||||
if (!enableDeepEnsure) return
|
if (!enableDeepEnsure) return
|
||||||
ensureResolved(declaration)
|
ensureResolved(declaration)
|
||||||
@@ -68,6 +68,7 @@ internal interface FirLazyTransformerForIDE {
|
|||||||
|
|
||||||
val DUMMY = object : FirLazyTransformerForIDE {
|
val DUMMY = object : FirLazyTransformerForIDE {
|
||||||
override fun transformDeclaration(phaseRunner: FirPhaseRunner) = Unit
|
override fun transformDeclaration(phaseRunner: FirPhaseRunner) = Unit
|
||||||
|
override fun ensureResolved(declaration: FirDeclaration) = error("Not implemented")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -69,6 +69,6 @@ internal object LazyTransformerFactory {
|
|||||||
towerDataContextCollector,
|
towerDataContextCollector,
|
||||||
firProviderInterceptor,
|
firProviderInterceptor,
|
||||||
)
|
)
|
||||||
else -> error("Non-lazy phase $this")
|
else -> error("Non-lazy phase $phase")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -162,7 +162,7 @@ abstract class AbstractCompilerBasedTest : KotlinLightCodeInsightFixtureTestCase
|
|||||||
try {
|
try {
|
||||||
FirLazyTransformerForIDE.enableDeepEnsure = true
|
FirLazyTransformerForIDE.enableDeepEnsure = true
|
||||||
TestRunner(configuration).runTest(path)
|
TestRunner(configuration).runTest(path)
|
||||||
} catch (_: Exception) {
|
} finally {
|
||||||
FirLazyTransformerForIDE.enableDeepEnsure = oldEnableDeepEnsure
|
FirLazyTransformerForIDE.enableDeepEnsure = oldEnableDeepEnsure
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user