[LL FIR] KTIJ-25536 Add callable package names workaround for LLFirProvider$SymbolProvider

- Sadly, the only way for now is to disable computation of the callable
  package names, which will negatively affect performance.
This commit is contained in:
Marco Pennekamp
2023-05-11 18:13:27 +02:00
committed by Space Team
parent a61c6f6502
commit 2540343159
2 changed files with 6 additions and 3 deletions
@@ -83,7 +83,10 @@ internal class LLFirProviderHelper(
val symbolNameCache = FirCompositeCachedSymbolNamesProvider.create(
firSession,
listOfNotNull(
LLFirKotlinSymbolNamesProvider(declarationProvider),
object : LLFirKotlinSymbolNamesProvider(declarationProvider) {
// This is a temporary workaround for KTIJ-25536.
override fun getPackageNamesWithTopLevelCallables(): Set<String>? = null
},
extensionTool?.symbolNamesProvider,
)
)
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.name.Name
/**
* A [FirSymbolNamesProvider] that fetches top-level names from a Kotlin [declarationProvider].
*/
internal class LLFirKotlinSymbolNamesProvider(
internal open class LLFirKotlinSymbolNamesProvider(
private val declarationProvider: KotlinDeclarationProvider,
) : FirSymbolNamesProvider() {
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<String> =
@@ -24,7 +24,7 @@ internal class LLFirKotlinSymbolNamesProvider(
.getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName)
.mapTo(mutableSetOf()) { it.asString() }
override fun getPackageNamesWithTopLevelCallables(): Set<String> =
override fun getPackageNamesWithTopLevelCallables(): Set<String>? =
declarationProvider.computePackageSetWithTopLevelCallableDeclarations()
override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set<Name> =