From f0de570b5583c78e7ee1aa3854ca7a37f0bfbf91 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Mon, 6 Mar 2023 18:37:13 +0900 Subject: [PATCH] [LL API] Use modification tracker right from the 'LLFirSession' --- .../api/fir/KtFirAnalysisSessionProvider.kt | 6 +----- .../fir/sessions/FirSessionValidityStamp.kt | 21 ------------------- 2 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/FirSessionValidityStamp.kt diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt index ff1008c63f9..781451d87df 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt @@ -19,7 +19,6 @@ import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeTokenFactory import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getFirResolveSession -import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.FirSessionValidityStamp import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.analysis.project.structure.getKtModule import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker @@ -47,12 +46,9 @@ class KtFirAnalysisSessionProvider(project: Project) : KtAnalysisSessionProvider val firResolveSession = useSiteKtModule.getFirResolveSession(project) val validityToken = factory.create(project) - val validityStamp = FirSessionValidityStamp(firResolveSession.useSiteFirSession) - require(validityStamp.isValid) { "Got an invalid session for module $useSiteKtModule" } - CachedValueProvider.Result( KtFirAnalysisSession.createAnalysisSessionByFirResolveSession(firResolveSession, validityToken), - validityStamp, + firResolveSession.useSiteFirSession.modificationTracker, ProjectRootModificationTracker.getInstance(project), project.createProjectWideOutOfBlockModificationTracker() ) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/FirSessionValidityStamp.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/FirSessionValidityStamp.kt deleted file mode 100644 index 0d2ba1673f9..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/sessions/FirSessionValidityStamp.kt +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.sessions - -import com.intellij.openapi.util.ModificationTracker -import java.lang.ref.WeakReference - -class FirSessionValidityStamp(session: LLFirSession) : ModificationTracker { - private val sessionRef = WeakReference(session) - - val isValid: Boolean - get() = modificationCount == 0L - - override fun getModificationCount(): Long { - val session = sessionRef.get() ?: return 1 - return if (session.isValid) 0 else 2 - } -} \ No newline at end of file