Analysis API: recreate analysis session when not found by resolve state
This commit is contained in:
-6
@@ -31,7 +31,6 @@ private constructor(
|
||||
val firResolveState: FirModuleResolveState,
|
||||
internal val firSymbolBuilder: KtSymbolByFirBuilder,
|
||||
token: ValidityToken,
|
||||
element: KtElement,
|
||||
private val mode: AnalysisSessionMode,
|
||||
) : KtAnalysisSession(token) {
|
||||
|
||||
@@ -110,7 +109,6 @@ private constructor(
|
||||
contextResolveState,
|
||||
firSymbolBuilder.createReadOnlyCopy(contextResolveState),
|
||||
token,
|
||||
originalKtFile,
|
||||
AnalysisSessionMode.DEPENDENT_COPY
|
||||
)
|
||||
}
|
||||
@@ -118,15 +116,12 @@ private constructor(
|
||||
val rootModuleSession: FirSession get() = firResolveState.rootModuleSession
|
||||
val firSymbolProvider: FirSymbolProvider get() = rootModuleSession.symbolProvider
|
||||
val targetPlatform: TargetPlatform get() = rootModuleSession.moduleData.platform
|
||||
val searchScope: GlobalSearchScope = element.resolveScope//todo
|
||||
|
||||
companion object {
|
||||
@InvalidWayOfUsingAnalysisSession
|
||||
@Deprecated("Please use org.jetbrains.kotlin.analysis.api.KtAnalysisSessionProviderKt.analyze")
|
||||
internal fun createAnalysisSessionByResolveState(
|
||||
firResolveState: FirModuleResolveState,
|
||||
token: ValidityToken,
|
||||
element: KtElement,
|
||||
): KtFirAnalysisSession {
|
||||
val project = firResolveState.project
|
||||
val firSymbolBuilder = KtSymbolByFirBuilder(
|
||||
@@ -139,7 +134,6 @@ private constructor(
|
||||
firResolveState,
|
||||
firSymbolBuilder,
|
||||
token,
|
||||
element,
|
||||
AnalysisSessionMode.REGULAR,
|
||||
)
|
||||
}
|
||||
|
||||
+4
-3
@@ -30,9 +30,10 @@ class KtFirAnalysisSessionProvider(project: Project) : CachingKtAnalysisSessionP
|
||||
override fun createAnalysisSession(
|
||||
resolveState: FirModuleResolveState,
|
||||
validityToken: ValidityToken,
|
||||
contextElement: KtElement
|
||||
): KtAnalysisSession {
|
||||
@Suppress("DEPRECATION")
|
||||
return KtFirAnalysisSession.createAnalysisSessionByResolveState(resolveState, validityToken, contextElement)
|
||||
return KtFirAnalysisSession.createAnalysisSessionByResolveState(resolveState, validityToken)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+2
-1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.analysis.api.fir.components
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
@@ -212,7 +213,7 @@ internal class KtFirScopeProvider(
|
||||
project,
|
||||
builder,
|
||||
token,
|
||||
analysisSession.searchScope,
|
||||
GlobalSearchScope.allScope(project), // todo
|
||||
analysisSession.targetPlatform
|
||||
)
|
||||
is FirContainingNamesAwareScope -> KtFirDelegatingScopeImpl(firScope, builder, token)
|
||||
|
||||
Reference in New Issue
Block a user