FIR IDE: fix memory leak in scope provider
This commit is contained in:
+6
-5
@@ -40,12 +40,13 @@ import java.util.*
|
||||
|
||||
internal class KtFirScopeProvider(
|
||||
analysisSession: KtAnalysisSession,
|
||||
private val builder: KtSymbolByFirBuilder,
|
||||
builder: KtSymbolByFirBuilder,
|
||||
private val project: Project,
|
||||
firResolveState: FirModuleResolveState,
|
||||
override val token: ValidityToken,
|
||||
) : KtScopeProvider(), ValidityTokenOwner {
|
||||
override val analysisSession: KtAnalysisSession by weakRef(analysisSession)
|
||||
private val builder by weakRef(builder)
|
||||
private val firResolveState by weakRef(firResolveState)
|
||||
private val firScopeStorage = FirScopeRegistry()
|
||||
|
||||
@@ -133,13 +134,13 @@ internal class KtFirScopeProvider(
|
||||
}
|
||||
|
||||
private fun buildCompletionContextForEnclosingDeclaration(
|
||||
originalFile: KtFile,
|
||||
ktFile: KtFile,
|
||||
positionInFakeFile: KtElement
|
||||
): LowLevelFirApiFacadeForCompletion.FirCompletionContext {
|
||||
val originalFirFile = LowLevelFirApiFacade.getFirFile(originalFile, firResolveState)
|
||||
val declarationContext = EnclosingDeclarationContext.detect(originalFile, positionInFakeFile)
|
||||
val firFile = LowLevelFirApiFacade.getFirFile(ktFile, firResolveState)
|
||||
val declarationContext = EnclosingDeclarationContext.detect(positionInFakeFile)
|
||||
|
||||
return declarationContext.buildCompletionContext(originalFirFile, firResolveState)
|
||||
return declarationContext.buildCompletionContext(firFile, firResolveState)
|
||||
}
|
||||
|
||||
private fun convertToKtScope(firScope: FirScope): KtScope {
|
||||
|
||||
Reference in New Issue
Block a user