[LL API] Replace 'isLibrarySession' with an inverted extension function
This commit is contained in:
-1
@@ -40,7 +40,6 @@ internal class LLFirResolveSessionDepended(
|
|||||||
override val project: Project get() = originalFirResolveSession.project
|
override val project: Project get() = originalFirResolveSession.project
|
||||||
override val useSiteKtModule: KtModule get() = originalFirResolveSession.useSiteKtModule
|
override val useSiteKtModule: KtModule get() = originalFirResolveSession.useSiteKtModule
|
||||||
override val useSiteFirSession get() = originalFirResolveSession.useSiteFirSession
|
override val useSiteFirSession get() = originalFirResolveSession.useSiteFirSession
|
||||||
override val isLibrarySession get() = false
|
|
||||||
|
|
||||||
private val scopeSessionProviderCache = SoftCachedMap.create<FirSession, LLFirScopeSessionProvider>(
|
private val scopeSessionProviderCache = SoftCachedMap.create<FirSession, LLFirScopeSessionProvider>(
|
||||||
project,
|
project,
|
||||||
|
|||||||
-2
@@ -31,8 +31,6 @@ abstract class LLFirResolveSession {
|
|||||||
|
|
||||||
abstract val useSiteKtModule: KtModule
|
abstract val useSiteKtModule: KtModule
|
||||||
|
|
||||||
abstract val isLibrarySession: Boolean
|
|
||||||
|
|
||||||
abstract fun getSessionFor(module: KtModule): LLFirSession
|
abstract fun getSessionFor(module: KtModule): LLFirSession
|
||||||
|
|
||||||
abstract fun getScopeSessionFor(firSession: FirSession): ScopeSession
|
abstract fun getScopeSessionFor(firSession: FirSession): ScopeSession
|
||||||
|
|||||||
-3
@@ -22,9 +22,6 @@ internal class LLFirLibraryOrLibrarySourceResolvableResolveSession(
|
|||||||
override val useSiteKtModule: KtModule,
|
override val useSiteKtModule: KtModule,
|
||||||
sessionProvider: LLFirSessionProvider,
|
sessionProvider: LLFirSessionProvider,
|
||||||
) : LLFirResolvableResolveSession(sessionProvider) {
|
) : LLFirResolvableResolveSession(sessionProvider) {
|
||||||
override val isLibrarySession: Boolean
|
|
||||||
get() = true
|
|
||||||
|
|
||||||
override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List<KtPsiDiagnostic> =
|
override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List<KtPsiDiagnostic> =
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|
||||||
|
|||||||
-3
@@ -20,9 +20,6 @@ internal class LLFirNotUnderContentRootResolveSession(
|
|||||||
override val useSiteKtModule: KtModule,
|
override val useSiteKtModule: KtModule,
|
||||||
sessionProvider: LLFirSessionProvider,
|
sessionProvider: LLFirSessionProvider,
|
||||||
) : LLFirResolvableResolveSession(sessionProvider) {
|
) : LLFirResolvableResolveSession(sessionProvider) {
|
||||||
override val isLibrarySession: Boolean
|
|
||||||
get() = false
|
|
||||||
|
|
||||||
override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List<KtPsiDiagnostic> =
|
override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List<KtPsiDiagnostic> =
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|
||||||
|
|||||||
-3
@@ -24,9 +24,6 @@ internal class LLFirSourceResolveSession(
|
|||||||
override val useSiteKtModule: KtModule,
|
override val useSiteKtModule: KtModule,
|
||||||
sessionProvider: LLFirSessionProvider,
|
sessionProvider: LLFirSessionProvider,
|
||||||
) : LLFirResolvableResolveSession(sessionProvider) {
|
) : LLFirResolvableResolveSession(sessionProvider) {
|
||||||
override val isLibrarySession: Boolean
|
|
||||||
get() = false
|
|
||||||
|
|
||||||
override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List<KtPsiDiagnostic> {
|
override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List<KtPsiDiagnostic> {
|
||||||
val moduleComponents = getModuleComponentsForElement(element)
|
val moduleComponents = getModuleComponentsForElement(element)
|
||||||
return moduleComponents.diagnosticsCollector.getDiagnosticsFor(element, filter)
|
return moduleComponents.diagnosticsCollector.getDiagnosticsFor(element, filter)
|
||||||
|
|||||||
+2
-2
@@ -65,7 +65,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
|
|||||||
errorExpressionRenderer = FirErrorExpressionExtendedRenderer(),
|
errorExpressionRenderer = FirErrorExpressionExtendedRenderer(),
|
||||||
)
|
)
|
||||||
resolveWithClearCaches(ktFile) { firResolveSession ->
|
resolveWithClearCaches(ktFile) { firResolveSession ->
|
||||||
check(!firResolveSession.isLibrarySession)
|
check(firResolveSession.isSourceSession)
|
||||||
val declarationToResolve = firResolveSession
|
val declarationToResolve = firResolveSession
|
||||||
.getOrBuildFirFile(ktFile)
|
.getOrBuildFirFile(ktFile)
|
||||||
.findResolveMe()
|
.findResolveMe()
|
||||||
@@ -79,7 +79,7 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
|
|||||||
}
|
}
|
||||||
|
|
||||||
resolveWithClearCaches(ktFile) { llSession ->
|
resolveWithClearCaches(ktFile) { llSession ->
|
||||||
check(!llSession.isLibrarySession)
|
check(llSession.isSourceSession)
|
||||||
val firFile = llSession.getOrBuildFirFile(ktFile)
|
val firFile = llSession.getOrBuildFirFile(ktFile)
|
||||||
firFile.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
firFile.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
||||||
resultBuilder.append("\nFILE RAW TO BODY:\n")
|
resultBuilder.append("\nFILE RAW TO BODY:\n")
|
||||||
|
|||||||
+2
-2
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.resolve.ImplicitReceiverStack
|
import org.jetbrains.kotlin.fir.resolve.ImplicitReceiverStack
|
||||||
import org.jetbrains.kotlin.fir.resolve.SessionHolderImpl
|
import org.jetbrains.kotlin.fir.resolve.SessionHolderImpl
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceResolveSession
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilter
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.DiagnosticCheckerFilter
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getDiagnostics
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getDiagnostics
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile
|
||||||
@@ -23,6 +22,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.FileStruct
|
|||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.NonReanalyzableDeclarationStructureElement
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.NonReanalyzableDeclarationStructureElement
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.ReanalyzableStructureElement
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.ReanalyzableStructureElement
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.RootStructureElement
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure.RootStructureElement
|
||||||
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.isSourceSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.name
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.name
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolveWithClearCaches
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolveWithClearCaches
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
||||||
@@ -46,7 +46,7 @@ abstract class AbstractFirContextCollectionTest : AbstractLowLevelApiSingleFileT
|
|||||||
register(BeforeElementDiagnosticCollectionHandler::class, handler)
|
register(BeforeElementDiagnosticCollectionHandler::class, handler)
|
||||||
}
|
}
|
||||||
) { firResolveSession ->
|
) { firResolveSession ->
|
||||||
check(!firResolveSession.isLibrarySession)
|
check(firResolveSession.isSourceSession)
|
||||||
|
|
||||||
val session = firResolveSession.getSessionFor(ktFile.getKtModule()) as LLFirResolvableModuleSession
|
val session = firResolveSession.getSessionFor(ktFile.getKtModule()) as LLFirResolvableModuleSession
|
||||||
val fileStructureCache = session.moduleComponents.fileStructureCache
|
val fileStructureCache = session.moduleComponents.fileStructureCache
|
||||||
|
|||||||
+2
-2
@@ -11,8 +11,8 @@ import com.intellij.psi.PsiElementVisitor
|
|||||||
import com.intellij.psi.PsiErrorElement
|
import com.intellij.psi.PsiErrorElement
|
||||||
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
import com.intellij.psi.impl.source.tree.LeafPsiElement
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceResolveSession
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getFirResolveSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getFirResolveSession
|
||||||
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.isSourceSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirResolvableModuleSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirOutOfContentRootTestConfigurator
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirOutOfContentRootTestConfigurator
|
||||||
@@ -100,7 +100,7 @@ abstract class AbstractFileStructureTest : AbstractLowLevelApiSingleFileTest() {
|
|||||||
|
|
||||||
private fun KtFile.getFileStructure(): FileStructure {
|
private fun KtFile.getFileStructure(): FileStructure {
|
||||||
val moduleFirResolveSession = getFirResolveSession()
|
val moduleFirResolveSession = getFirResolveSession()
|
||||||
check(!moduleFirResolveSession.isLibrarySession)
|
check(moduleFirResolveSession.isSourceSession)
|
||||||
val session = moduleFirResolveSession.getSessionFor(getKtModule()) as LLFirResolvableModuleSession
|
val session = moduleFirResolveSession.getSessionFor(getKtModule()) as LLFirResolvableModuleSession
|
||||||
return session.moduleComponents.fileStructureCache.getFileStructure(this)
|
return session.moduleComponents.fileStructureCache.getFileStructure(this)
|
||||||
}
|
}
|
||||||
|
|||||||
+10
@@ -7,6 +7,8 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSession
|
||||||
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirNotUnderContentRootResolveSession
|
||||||
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceResolveSession
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.getKtModule
|
import org.jetbrains.kotlin.analysis.project.structure.getKtModule
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||||
@@ -43,3 +45,11 @@ internal inline fun <R> resolveWithClearCaches(
|
|||||||
val firResolveSession = createFirResolveSessionForNoCaching(context.getKtModule(project), project, configureSession)
|
val firResolveSession = createFirResolveSessionForNoCaching(context.getKtModule(project), project, configureSession)
|
||||||
return action(firResolveSession)
|
return action(firResolveSession)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal val LLFirResolveSession.isSourceSession: Boolean
|
||||||
|
get() {
|
||||||
|
return when (this) {
|
||||||
|
is LLFirSourceResolveSession, is LLFirNotUnderContentRootResolveSession -> true
|
||||||
|
else -> false
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user