[FIR IDE] Add token validity assertion to KtFirImportOptimizer
This commit is contained in:
+2
-1
@@ -5,10 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.frontend.api.components
|
||||
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtImportDirective
|
||||
|
||||
public abstract class KtImportOptimizer {
|
||||
public abstract class KtImportOptimizer : ValidityTokenOwner {
|
||||
public abstract fun analyseImports(file: KtFile): KtImportOptimizerResult
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ private constructor(
|
||||
|
||||
override val referenceShortenerImpl = KtFirReferenceShortener(this, token, firResolveState)
|
||||
|
||||
override val importOptimizerImpl: KtImportOptimizer = KtFirImportOptimizer(firResolveState)
|
||||
override val importOptimizerImpl: KtImportOptimizer = KtFirImportOptimizer(token, firResolveState)
|
||||
|
||||
override val symbolDeclarationRendererProviderImpl: KtSymbolDeclarationRendererProvider =
|
||||
KtFirSymbolDeclarationRendererProvider(this, token)
|
||||
|
||||
+5
@@ -26,8 +26,10 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||
import org.jetbrains.kotlin.idea.fir.isInvokeFunction
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getOrBuildFirFile
|
||||
import org.jetbrains.kotlin.idea.frontend.api.assertIsValidAndAccessible
|
||||
import org.jetbrains.kotlin.idea.frontend.api.components.KtImportOptimizer
|
||||
import org.jetbrains.kotlin.idea.frontend.api.components.KtImportOptimizerResult
|
||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -38,12 +40,15 @@ import org.jetbrains.kotlin.resolve.ImportPath
|
||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||
|
||||
internal class KtFirImportOptimizer(
|
||||
override val token: ValidityToken,
|
||||
private val firResolveState: FirModuleResolveState
|
||||
) : KtImportOptimizer() {
|
||||
private val firSession: FirSession
|
||||
get() = firResolveState.rootModuleSession
|
||||
|
||||
override fun analyseImports(file: KtFile): KtImportOptimizerResult {
|
||||
assertIsValidAndAccessible()
|
||||
|
||||
val firFile = file.getOrBuildFirFile(firResolveState).apply { ensureResolved(FirResolvePhase.BODY_RESOLVE) }
|
||||
|
||||
val existingImports = file.importDirectives
|
||||
|
||||
Reference in New Issue
Block a user