From 8703da5a254362f849d8f4582992c54a4d2cebce Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 16 Dec 2019 12:35:22 +0300 Subject: [PATCH] Rename: FirResolveState -> FirModuleResolveState to reflect per-module status --- .../kotlin/idea/fir/FirIdeDiagnosticsCollector.kt | 2 +- .../kotlin/idea/fir/FirIdeResolveStateService.kt | 10 +++++----- ...FirResolveState.kt => FirModuleResolveState.kt} | 6 +++--- .../jetbrains/kotlin/idea/fir/FirResolutionApi.kt | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) rename idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/{FirResolveState.kt => FirModuleResolveState.kt} (95%) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt index 4f8cfaf77ad..3cd98d6f598 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeDiagnosticsCollector.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.AbstractDiagnosti import org.jetbrains.kotlin.fir.resolve.diagnostics.collectors.registerAllComponents import org.jetbrains.kotlin.psi.KtElement -class FirIdeDiagnosticsCollector(private val resolveState: FirResolveState) : AbstractDiagnosticCollector() { +class FirIdeDiagnosticsCollector(private val resolveState: FirModuleResolveState) : AbstractDiagnosticCollector() { init { registerAllComponents() diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeResolveStateService.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeResolveStateService.kt index 32df81f5f16..3c8d212faa6 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeResolveStateService.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirIdeResolveStateService.kt @@ -21,10 +21,10 @@ interface FirIdeResolveStateService { val fallbackModificationTracker: ModificationTracker? - fun getResolveState(moduleInfo: IdeaModuleInfo): FirResolveState + fun getResolveState(moduleInfo: IdeaModuleInfo): FirModuleResolveState } -private class FirModuleData(val state: FirResolveState, val modificationTracker: ModificationTracker?) { +private class FirModuleData(val state: FirModuleResolveState, val modificationTracker: ModificationTracker?) { val modificationCount: Long = modificationTracker?.modificationCount ?: Long.MIN_VALUE fun isOutOfDate(): Boolean { @@ -36,9 +36,9 @@ private class FirModuleData(val state: FirResolveState, val modificationTracker: class FirIdeResolveStateServiceImpl(val project: Project) : FirIdeResolveStateService { private val stateCache = mutableMapOf() - private fun createResolveState(): FirResolveState { + private fun createResolveState(): FirModuleResolveState { val provider = FirProjectSessionProvider(project) - return FirResolveStateImpl(provider) + return FirModuleResolveStateImpl(provider) } private fun createModuleData(moduleInfo: IdeaModuleInfo): FirModuleData { @@ -48,7 +48,7 @@ class FirIdeResolveStateServiceImpl(val project: Project) : FirIdeResolveStateSe } // TODO: multi thread protection - override fun getResolveState(moduleInfo: IdeaModuleInfo): FirResolveState { + override fun getResolveState(moduleInfo: IdeaModuleInfo): FirModuleResolveState { var moduleData = stateCache.getOrPut(moduleInfo) { createModuleData(moduleInfo) } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolveState.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirModuleResolveState.kt similarity index 95% rename from idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolveState.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirModuleResolveState.kt index e19d7e4833b..23a05183973 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolveState.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirModuleResolveState.kt @@ -50,7 +50,7 @@ private fun getOrCreateIdeSession( } } -interface FirResolveState { +interface FirModuleResolveState { val sessionProvider: FirSessionProvider fun getSession(psi: KtElement): FirSession { @@ -72,7 +72,7 @@ interface FirResolveState { fun setDiagnosticsForFile(file: KtFile, fir: FirFile, diagnostics: Iterable = emptyList()) } -class FirResolveStateImpl(override val sessionProvider: FirSessionProvider) : FirResolveState { +class FirModuleResolveStateImpl(override val sessionProvider: FirSessionProvider) : FirModuleResolveState { private val cache = mutableMapOf() private val diagnosticCache = mutableMapOf>() @@ -120,5 +120,5 @@ class FirResolveStateImpl(override val sessionProvider: FirSessionProvider) : Fi } } -fun KtElement.firResolveState(): FirResolveState = +fun KtElement.firResolveState(): FirModuleResolveState = FirIdeResolveStateService.getInstance(project).getResolveState(getModuleInfo()) \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt index d1fcd5fa89c..fc0a5ce7e28 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/fir/FirResolutionApi.kt @@ -73,7 +73,7 @@ private fun FirFile.findCallableMember( } fun KtCallableDeclaration.getOrBuildFir( - state: FirResolveState, + state: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.DECLARATIONS ): FirCallableDeclaration<*> { val session = state.getSession(this) @@ -97,7 +97,7 @@ fun KtCallableDeclaration.getOrBuildFir( } fun KtClassOrObject.getOrBuildFir( - state: FirResolveState, + state: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.DECLARATIONS ): FirRegularClass { val session = state.getSession(this) @@ -118,14 +118,14 @@ fun KtClassOrObject.getOrBuildFir( return firClass } -private fun KtFile.getOrBuildRawFirFile(state: FirResolveState): Pair { +private fun KtFile.getOrBuildRawFirFile(state: FirModuleResolveState): Pair { val session = state.getSession(this) val firProvider = FirProvider.getInstance(session) as IdeFirProvider return firProvider to firProvider.getOrBuildFile(this) } fun KtFile.getOrBuildFir( - state: FirResolveState, + state: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.DECLARATIONS ): FirFile { val (firProvider, firFile) = getOrBuildRawFirFile(state) @@ -138,7 +138,7 @@ fun KtFile.getOrBuildFir( return firFile } -fun KtFile.getOrBuildFirWithDiagnostics(state: FirResolveState): FirFile { +fun KtFile.getOrBuildFirWithDiagnostics(state: FirModuleResolveState): FirFile { val (_, firFile) = getOrBuildRawFirFile(state) val currentResolvePhase = firFile.resolvePhase if (currentResolvePhase < FirResolvePhase.BODY_RESOLVE) { @@ -159,7 +159,7 @@ private fun FirDeclaration.runResolve( file: FirFile, firProvider: IdeFirProvider, toPhase: FirResolvePhase, - state: FirResolveState + state: FirModuleResolveState ) { val nonLazyPhase = minOf(toPhase, FirResolvePhase.DECLARATIONS) file.runResolve(toPhase = nonLazyPhase, fromPhase = this.resolvePhase) @@ -194,7 +194,7 @@ private fun FirDeclaration.runResolve( } fun KtElement.getOrBuildFir( - state: FirResolveState, + state: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.BODY_RESOLVE ): FirElement { val containerFir: FirDeclaration =