Skip to content

Commit cdfb36a

Browse files
ting-yuanKSP Auto Pick
authored andcommitted
Register KotlinStandalonePackageProviderFactory to project Disposable
It has to be done manually because it is wrapped by IncrementalPackageProviderFactory. (cherry picked from commit 9068bda)
1 parent fc1f351 commit cdfb36a

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/KotlinSymbolProcessing.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ class KotlinSymbolProcessing(
259259
kotlinCoreProjectEnvironment,
260260
ktFiles,
261261
createPackagePartProvider,
262+
projectDisposable
262263
)
263264

264265
CoreApplicationEnvironment.registerExtensionPoint(
@@ -295,6 +296,7 @@ class KotlinSymbolProcessing(
295296
kotlinCoreProjectEnvironment: KotlinCoreProjectEnvironment,
296297
ktFiles: List<KtFile>,
297298
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
299+
projectDisposable: Disposable,
298300
) {
299301
val project = kotlinCoreProjectEnvironment.project
300302
project.apply {
@@ -343,7 +345,10 @@ class KotlinSymbolProcessing(
343345
KotlinDeclarationProviderMerger::class.java,
344346
KotlinStandaloneDeclarationProviderMerger(this)
345347
)
346-
registerService(KotlinPackageProviderFactory::class.java, IncrementalKotlinPackageProviderFactory(project))
348+
registerService(
349+
KotlinPackageProviderFactory::class.java,
350+
IncrementalKotlinPackageProviderFactory(project, projectDisposable)
351+
)
347352

348353
registerService(
349354
SealedClassInheritorsProvider::class.java,

kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/standalone/IncrementalKotlinPackageProviderFactory.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.google.devtools.ksp.standalone
22

3+
import com.intellij.openapi.Disposable
34
import com.intellij.openapi.project.Project
5+
import com.intellij.openapi.util.Disposer
46
import com.intellij.psi.search.GlobalSearchScope
57
import org.jetbrains.kotlin.analysis.api.platform.packages.KotlinCompositePackageProvider
68
import org.jetbrains.kotlin.analysis.api.platform.packages.KotlinPackageProvider
@@ -10,6 +12,7 @@ import org.jetbrains.kotlin.psi.KtFile
1012

1113
class IncrementalKotlinPackageProviderFactory(
1214
private val project: Project,
15+
private val projectDisposable: Disposable,
1316
) : KotlinPackageProviderFactory {
1417
private val staticFactories: MutableList<KotlinStandalonePackageProviderFactory> = mutableListOf()
1518

@@ -20,6 +23,7 @@ class IncrementalKotlinPackageProviderFactory(
2023

2124
fun update(files: Collection<KtFile>) {
2225
val staticFactory = KotlinStandalonePackageProviderFactory(project, files)
26+
Disposer.register(projectDisposable, staticFactory)
2327
staticFactories.add(staticFactory)
2428
}
2529
}

0 commit comments

Comments
 (0)