[Analysis API] Remove components of obsolete on-air analysis

On-air analysis only worked correctly inside declaration bodies, and
required special handling ('analyzeInDependedAnalysisSession()').
Dangling files, the on-air replacement, works seamlessly, and it is
available in all contexts.
This commit is contained in:
Yan Zhulanow
2024-01-11 19:03:41 +09:00
committed by Space Team
parent 9021fdaf83
commit 9227359256
15 changed files with 7 additions and 885 deletions
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.analysis.api.impl.base.components.KtAnalysisScopePro
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken
import org.jetbrains.kotlin.analysis.api.lifetime.withValidityAssertion
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LowLevelFirApiFacadeForResolveOnAir
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.LLFirResolveExtensionTool
import org.jetbrains.kotlin.analysis.low.level.api.fir.resolve.extensions.llResolveExtensionTool
import org.jetbrains.kotlin.analysis.project.structure.KtModule
@@ -35,8 +34,6 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
import org.jetbrains.kotlin.platform.TargetPlatform
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.utils.addIfNotNull
@OptIn(KtAnalysisApiInternals::class, KtAnalysisNonPublicApi::class)
@@ -135,26 +132,6 @@ private constructor(
override val substitutorProviderImpl: KtSubstitutorProvider = KtFirSubstitutorProvider(this)
@Suppress("AnalysisApiMissingLifetimeCheck", "OVERRIDE_DEPRECATION")
override fun createContextDependentCopy(originalKtFile: KtFile, elementToReanalyze: KtElement): KtAnalysisSession {
check(mode == AnalysisSessionMode.REGULAR) {
"Cannot create context-dependent copy of KtAnalysis session from a context dependent one"
}
val contextFirResolveSession = LowLevelFirApiFacadeForResolveOnAir.getFirResolveSessionForDependentCopy(
originalFirResolveSession = firResolveSession,
originalKtFile = originalKtFile,
elementToAnalyze = elementToReanalyze
)
return KtFirAnalysisSession(
project,
contextFirResolveSession,
token,
AnalysisSessionMode.DEPENDENT_COPY
)
}
internal val useSiteSession: FirSession get() = firResolveSession.useSiteFirSession
internal val firSymbolProvider: FirSymbolProvider get() = useSiteSession.symbolProvider
internal val targetPlatform: TargetPlatform get() = useSiteSession.moduleData.platform