diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/FrontendAnalysisSession.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/FrontendAnalysisSession.kt index 1172a95cb9d..74e58371730 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/FrontendAnalysisSession.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/FrontendAnalysisSession.kt @@ -5,11 +5,17 @@ package org.jetbrains.kotlin.idea.frontend.api +import com.intellij.openapi.project.Project import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.psi.* -abstract class FrontendAnalysisSession : Invalidatable { +abstract class FrontendAnalysisSession(project: Project) : Invalidatable { + protected val validityToken = ReadActionConfinementValidityToken(project) + override fun isValid(): Boolean = validityToken.isValid() + override fun invalidationReason(): String = validityToken.invalidationReason() + + abstract fun getSmartCastedToTypes(expression: KtExpression): Collection? abstract fun getImplicitReceiverSmartCasts(expression: KtExpression): Collection diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/FirAnalysisSession.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/FirAnalysisSession.kt index 98a5fab87ea..183ae120e62 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/FirAnalysisSession.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/FirAnalysisSession.kt @@ -33,12 +33,8 @@ import org.jetbrains.kotlin.psi.* class FirAnalysisSession( project: Project -) : FrontendAnalysisSession() { - private val validityToken = ReadActionConfinementValidityToken(project) - override fun isValid(): Boolean = validityToken.isValid() - override fun invalidationReason(): String = validityToken.invalidationReason() - - constructor(element: KtElement) : this(element.project) +) : FrontendAnalysisSession(project) { + constructor(element: KtElement) : this(element.project) init { assertIsValid()