[FIR] rename ensureResolve -> lazyResolveToPhase as it better describes function semantics
This commit is contained in:
+4
-4
@@ -7,14 +7,14 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir
|
||||
|
||||
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.symbols.FirPhaseManager
|
||||
import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionInvalidator
|
||||
|
||||
@ThreadSafeMutableState
|
||||
internal class LLFirPhaseManager(private val sessionInvalidator: LLFirSessionInvalidator) : FirPhaseManager() {
|
||||
override fun ensureResolved(symbol: FirBasedSymbol<*>, requiredPhase: FirResolvePhase) {
|
||||
internal class LLFirLazyDeclarationResolver(private val sessionInvalidator: LLFirSessionInvalidator) : FirLazyDeclarationResolver() {
|
||||
override fun lazyResolveToPhase(symbol: FirBasedSymbol<*>, toPhase: FirResolvePhase) {
|
||||
val fir = symbol.fir
|
||||
val session = fir.moduleData.session
|
||||
if (session !is LLFirResolvableModuleSession) return
|
||||
@@ -23,7 +23,7 @@ internal class LLFirPhaseManager(private val sessionInvalidator: LLFirSessionInv
|
||||
moduleComponents.lazyFirDeclarationsResolver.lazyResolveDeclaration(
|
||||
firDeclarationToResolve = fir,
|
||||
scopeSession = moduleComponents.scopeSessionProvider.getScopeSession(),
|
||||
toPhase = requiredPhase,
|
||||
toPhase = toPhase,
|
||||
checkPCE = true,
|
||||
)
|
||||
} catch (e: Throwable) {
|
||||
+2
-2
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDesignatedBodyResolveTransformerForReturnTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDeclarationDesignation
|
||||
@@ -64,7 +64,7 @@ private class LLFirDesignatedBodyResolveTransformerForReturnTypeCalculatorImpl(
|
||||
private inline fun <D : FirCallableDeclaration> D.processCallable(body: (FirDeclarationDesignation) -> Unit) {
|
||||
if (this !== targetDeclaration) return
|
||||
if (resolvePhase < FirResolvePhase.TYPES && returnTypeRef is FirResolvedTypeRef) return
|
||||
ensureResolved(FirResolvePhase.TYPES)
|
||||
lazyResolveToPhase(FirResolvePhase.TYPES)
|
||||
if (returnTypeRef is FirImplicitTypeRef) {
|
||||
val declarationList = designation.filterIsInstance<FirDeclaration>()
|
||||
check(declarationList.isNotEmpty()) { "Invalid empty declaration designation" }
|
||||
|
||||
+3
-3
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDesignatedBodyResolveTransformerForReturnTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
|
||||
@@ -62,9 +62,9 @@ private class LLFirEnsureBasedTransformerForReturnTypeCalculatorImpl(
|
||||
private fun <T : FirCallableDeclaration> T.ensureReturnType() {
|
||||
if (this !== targetDeclaration) return
|
||||
if (resolvePhase < FirResolvePhase.TYPES && returnTypeRef is FirResolvedTypeRef) return
|
||||
ensureResolved(FirResolvePhase.TYPES)
|
||||
lazyResolveToPhase(FirResolvePhase.TYPES)
|
||||
if (returnTypeRef is FirImplicitTypeRef) {
|
||||
ensureResolved(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
lazyResolveToPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -19,11 +19,11 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseCheckingPhaseManager
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirCompilerLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.session.registerCommonComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerModuleData
|
||||
import org.jetbrains.kotlin.fir.symbols.FirPhaseManager
|
||||
import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
@@ -50,7 +50,7 @@ import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices
|
||||
bindSession(this@session)
|
||||
}
|
||||
registerIdeComponents(project)
|
||||
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
|
||||
register(FirLazyDeclarationResolver::class, FirCompilerLazyDeclarationResolver)
|
||||
registerCommonComponents(LanguageVersionSettingsImpl.DEFAULT/*TODO*/)
|
||||
registerModuleData(moduleData)
|
||||
|
||||
|
||||
+3
-3
@@ -20,13 +20,13 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirPhaseCheckingPhaseManager
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirCompilerLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.session.registerCommonComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerCommonJavaComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerJavaSpecificResolveComponents
|
||||
import org.jetbrains.kotlin.fir.session.registerModuleData
|
||||
import org.jetbrains.kotlin.fir.symbols.FirPhaseManager
|
||||
import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
|
||||
|
||||
@OptIn(PrivateSessionConstructor::class, SessionConfiguration::class)
|
||||
@@ -47,7 +47,7 @@ internal class LLFirLibrarySessionFactory(
|
||||
val moduleData = LLFirModuleData(ktLibraryModule).apply { bindSession(this@session) }
|
||||
registerModuleData(moduleData)
|
||||
registerIdeComponents(project)
|
||||
register(FirPhaseManager::class, FirPhaseCheckingPhaseManager)
|
||||
register(FirLazyDeclarationResolver::class, FirCompilerLazyDeclarationResolver)
|
||||
registerCommonComponents(LanguageVersionSettingsImpl.DEFAULT/*TODO*/)
|
||||
registerCommonJavaComponents(JavaModuleResolver.getInstance(project))
|
||||
registerJavaSpecificResolveComponents()
|
||||
|
||||
+3
-3
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseManager
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirDependentModuleProvidersBySessions
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirModuleWithDependenciesSymbolProvider
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.providers.LLFirProvider
|
||||
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.session.*
|
||||
import org.jetbrains.kotlin.fir.symbols.FirPhaseManager
|
||||
import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
@@ -77,7 +77,7 @@ internal class LLFirNonUnderContentRootSessionFactory(private val project: Proje
|
||||
)
|
||||
|
||||
register(FirProvider::class, provider)
|
||||
register(FirPhaseManager::class, LLFirPhaseManager(sessionInvalidator))
|
||||
register(FirLazyDeclarationResolver::class, LLFirLazyDeclarationResolver(sessionInvalidator))
|
||||
|
||||
val dependencyProvider = LLFirDependentModuleProvidersBySessions(this) {
|
||||
add(builtinsSession)
|
||||
|
||||
+4
-4
@@ -10,7 +10,7 @@ import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.psi.search.ProjectScope
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirGlobalResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirPhaseManager
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.*
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.LLFirLibrarySessionFactory
|
||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.project.structure.registerIdeComponents
|
||||
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.scopes.wrapScopeWithJvmMapped
|
||||
import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider
|
||||
import org.jetbrains.kotlin.fir.session.*
|
||||
import org.jetbrains.kotlin.fir.symbols.FirPhaseManager
|
||||
import org.jetbrains.kotlin.fir.symbols.FirLazyDeclarationResolver
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
|
||||
@@ -101,7 +101,7 @@ internal object LLFirSessionFactory {
|
||||
)
|
||||
|
||||
register(FirProvider::class, provider)
|
||||
register(FirPhaseManager::class, LLFirPhaseManager(sessionInvalidator))
|
||||
register(FirLazyDeclarationResolver::class, LLFirLazyDeclarationResolver(sessionInvalidator))
|
||||
|
||||
registerCompilerPluginServices(contentScope, project, module)
|
||||
registerCompilerPluginExtensions(project, module)
|
||||
@@ -206,7 +206,7 @@ internal object LLFirSessionFactory {
|
||||
|
||||
register(FirProvider::class, provider)
|
||||
|
||||
register(FirPhaseManager::class, LLFirPhaseManager(sessionInvalidator))
|
||||
register(FirLazyDeclarationResolver::class, LLFirLazyDeclarationResolver(sessionInvalidator))
|
||||
|
||||
// We need FirRegisteredPluginAnnotations during extensions' registration process
|
||||
val annotationsResolver = project.createAnnotationResolver(contentScope)
|
||||
|
||||
+3
-3
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.realPsi
|
||||
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithAttributes
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -66,7 +66,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
|
||||
.findResolveMe()
|
||||
for (currentPhase in FirResolvePhase.values()) {
|
||||
if (currentPhase == FirResolvePhase.SEALED_CLASS_INHERITORS) continue
|
||||
declarationToResolve.ensureResolved(currentPhase)
|
||||
declarationToResolve.lazyResolveToPhase(currentPhase)
|
||||
val firFile = firResolveSession.getOrBuildFirFile(ktFile)
|
||||
resultBuilder.append("\n${currentPhase.name}:\n")
|
||||
renderer.renderElementAsString(firFile)
|
||||
@@ -76,7 +76,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
|
||||
resolveWithClearCaches(ktFile) { firResolveSession ->
|
||||
check(firResolveSession is LLFirSourceResolveSession)
|
||||
val firFile = firResolveSession.getOrBuildFirFile(ktFile)
|
||||
firFile.ensureResolved(FirResolvePhase.BODY_RESOLVE)
|
||||
firFile.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
||||
resultBuilder.append("\nFILE RAW TO BODY:\n")
|
||||
renderer.renderElementAsString(firFile)
|
||||
}
|
||||
|
||||
-3
@@ -13,11 +13,8 @@ import org.jetbrains.kotlin.fir.AbstractFirAnalyzerFacade
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrResult
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirSealedClassInheritorsProcessor
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.model.TestFile
|
||||
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirSealedClassInheritorsProcessor
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.services.PreAnalysisHandler
|
||||
@@ -58,7 +58,7 @@ class SealedClassesInheritorsCaclulatorPreAnalysisHandler(
|
||||
firFiles: List<FirFile>,
|
||||
tmpFirResolveSession: LLFirResolveSession
|
||||
): Map<ClassId, List<ClassId>> {
|
||||
firFiles.forEach { it.ensureResolved(FirResolvePhase.TYPES) }
|
||||
firFiles.forEach { it.lazyResolveToPhase(FirResolvePhase.TYPES) }
|
||||
val inheritorsCollector = FirSealedClassInheritorsProcessor.InheritorsCollector(tmpFirResolveSession.useSiteFirSession)
|
||||
val sealedClassInheritorsMap = mutableMapOf<FirRegularClass, MutableList<ClassId>>()
|
||||
firFiles.forEach { it.accept(inheritorsCollector, sealedClassInheritorsMap) }
|
||||
|
||||
Reference in New Issue
Block a user