diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedJavaSymbolProvider.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedJavaSymbolProvider.kt index 5a7781ad26b..e02ed6881c6 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedJavaSymbolProvider.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedJavaSymbolProvider.kt @@ -51,7 +51,7 @@ internal class LLFirCombinedJavaSymbolProvider private constructor( private val classCache: NullableCaffeineCache = NullableCaffeineCache { it.maximumSize(2500) } override val symbolNamesProvider: FirSymbolNamesProvider = object : FirSymbolNamesProviderWithoutCallables() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = null + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = null override fun mayHaveTopLevelClassifier(classId: ClassId): Boolean = true } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedSyntheticFunctionSymbolProvider.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedSyntheticFunctionSymbolProvider.kt index bc04e4bfe67..c5f714788f3 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedSyntheticFunctionSymbolProvider.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/providers/LLFirCombinedSyntheticFunctionSymbolProvider.kt @@ -35,7 +35,7 @@ internal class LLFirCombinedSyntheticFunctionSymbolProvider private constructor( // `FirCompositeSymbolNamesProvider` defines `mayHaveSyntheticFunctionTypes` and `mayHaveSyntheticFunctionType` correctly, which is // needed for consistency should this symbol provider be part of another composite symbol provider. object : FirCompositeSymbolNamesProvider(providers.map { it.symbolNamesProvider }) { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = emptySet() + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = emptySet() override fun getPackageNamesWithTopLevelCallables(): Set = emptySet() override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set = emptySet() } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/extensions/LLFirResolveExtensionTool.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/extensions/LLFirResolveExtensionTool.kt index fe89684f955..4dfbe2f8f5e 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/extensions/LLFirResolveExtensionTool.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/extensions/LLFirResolveExtensionTool.kt @@ -75,11 +75,9 @@ private class LLFirResolveExtensionToolSymbolNamesProvider( private val packageFilter: LLFirResolveExtensionToolPackageFilter, private val fileProvider: LLFirResolveExtensionsFileProvider, ) : FirSymbolNamesProvider() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = forbidAnalysis { + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = forbidAnalysis { if (!packageFilter.packageExists(packageFqName)) return emptySet() - fileProvider.getFilesByPackage(packageFqName) - .flatMap { it.getTopLevelClassifierNames() } - .mapTo(mutableSetOf()) { it.asString() } + fileProvider.getFilesByPackage(packageFqName).flatMap { it.getTopLevelClassifierNames() }.toSet() } override fun getPackageNamesWithTopLevelCallables(): Set = forbidAnalysis { diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirKotlinSymbolNamesProvider.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirKotlinSymbolNamesProvider.kt index f4ad20e4d1c..0ba34319555 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirKotlinSymbolNamesProvider.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/LLFirKotlinSymbolNamesProvider.kt @@ -25,12 +25,10 @@ internal open class LLFirKotlinSymbolNamesProvider( private val declarationProvider: KotlinDeclarationProvider, private val allowKotlinPackage: Boolean? = null, ) : FirSymbolNamesProvider() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set { + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set { if (allowKotlinPackage == false && packageFqName.isKotlinPackage()) return emptySet() - return declarationProvider - .getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName) - .mapToSetOrEmpty { it.asString() } + return declarationProvider.getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName) } override fun getPackageNamesWithTopLevelCallables(): Set? { diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/NativeForwardDeclarationsSymbolProvider.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/NativeForwardDeclarationsSymbolProvider.kt index bfce0d737a5..1aaaca724e8 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/NativeForwardDeclarationsSymbolProvider.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/NativeForwardDeclarationsSymbolProvider.kt @@ -62,11 +62,11 @@ class NativeForwardDeclarationsSymbolProvider( } } - private val includedForwardDeclarationsByPackage: Map> by lazy { - buildMap> { + private val includedForwardDeclarationsByPackage: Map> by lazy { + buildMap> { for (classId in includedForwardDeclarations) { getOrPut(classId.packageFqName) { mutableSetOf() } - .add(classId.shortClassName.asString()) + .add(classId.shortClassName) } } } @@ -157,7 +157,7 @@ class NativeForwardDeclarationsSymbolProvider( } override val symbolNamesProvider: FirSymbolNamesProvider = object : FirSymbolNamesProviderWithoutCallables() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = includedForwardDeclarationsByPackage[packageFqName].orEmpty() } } diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/AbstractFirDeserializedSymbolProvider.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/AbstractFirDeserializedSymbolProvider.kt index 091c9fbd1d6..641e1d69e6d 100644 --- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/AbstractFirDeserializedSymbolProvider.kt +++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/AbstractFirDeserializedSymbolProvider.kt @@ -94,8 +94,11 @@ abstract class AbstractFirDeserializedSymbolProvider( } override val symbolNamesProvider: FirSymbolNamesProvider = object : FirCachedSymbolNamesProvider(session) { - override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? { - val classesInPackage = knownTopLevelClassesInPackage(packageFqName) ?: return null + override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? { + val classesInPackage = knownTopLevelClassesInPackage(packageFqName) + ?.mapTo(mutableSetOf()) { Name.identifier(it) } + ?.ifEmpty { emptySet() } + ?: return null if (packageFqName.asString() !in packageNamesForNonClassDeclarations) return classesInPackage @@ -104,7 +107,7 @@ abstract class AbstractFirDeserializedSymbolProvider( return buildSet { addAll(classesInPackage) - typeAliasNames.mapTo(this) { it.asString() } + addAll(typeAliasNames) } } diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt index 7ad50e7a5ac..5797402ac02 100644 --- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt +++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirBuiltinSymbolProvider.kt @@ -88,9 +88,9 @@ open class FirBuiltinSymbolProvider( override fun getPackageNamesWithTopLevelCallables(): Set = allPackageFragments.keys.mapTo(mutableSetOf()) { it.asString() } - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = allPackageFragments[packageFqName]?.flatMapTo(mutableSetOf()) { fragment -> - fragment.classDataFinder.allClassIds.map { it.shortClassName.asString() } + fragment.classDataFinder.allClassIds.map { it.shortClassName } }.orEmpty() override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set = diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index c19ab2c2a7c..2aeaf964a44 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -71,8 +71,10 @@ open class JavaSymbolProvider( override fun getPackage(fqName: FqName): FqName? = javaFacade.getPackage(fqName) override val symbolNamesProvider: FirSymbolNamesProvider = object : FirSymbolNamesProviderWithoutCallables() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = javaFacade.knownClassNamesInPackage(packageFqName) + ?.mapTo(mutableSetOf()) { Name.identifier(it) } + ?.ifEmpty { emptySet() } } } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt index b6ec042d557..d3060a4da35 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirExtensionDeclarationsSymbolProvider.kt @@ -64,12 +64,13 @@ class FirExtensionDeclarationsSymbolProvider private constructor( ) } - private val classNamesInPackageCache: FirLazyValue>> = + private val classNamesInPackageCache: FirLazyValue>> = cachesFactory.createLazyValue { computeNamesGroupedByPackage( FirDeclarationGenerationExtension::getTopLevelClassIds, - ClassId::packageFqName - ) { it.shortClassName.asString() } + ClassId::packageFqName, + ClassId::shortClassName, + ) } private fun computeNamesGroupedByPackage( @@ -148,7 +149,7 @@ class FirExtensionDeclarationsSymbolProvider private constructor( // ------------------------------------------ provider methods ------------------------------------------ override val symbolNamesProvider: FirSymbolNamesProvider = object : FirSymbolNamesProvider() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = classNamesInPackageCache.getValue()[packageFqName] ?: emptySet() override fun getPackageNamesWithTopLevelCallables(): Set = diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt index 1a9dc0e4ac2..ff5dfc4b37a 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/extensions/FirSwitchableExtensionDeclarationsSymbolProvider.kt @@ -38,7 +38,7 @@ class FirSwitchableExtensionDeclarationsSymbolProvider private constructor( override fun getPackageNamesWithTopLevelCallables(): Set? = if (disabled) null else delegate.symbolNamesProvider.getPackageNamesWithTopLevelCallables() - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = if (disabled) null else delegate.symbolNamesProvider.getTopLevelClassifierNamesInPackage(packageFqName) override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set? = diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirCachedSymbolNamesProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirCachedSymbolNamesProvider.kt index c1d8c120f2e..ba53ea37079 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirCachedSymbolNamesProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirCachedSymbolNamesProvider.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.name.Name * A [FirSymbolNamesProvider] that caches all name sets. */ abstract class FirCachedSymbolNamesProvider(protected val session: FirSession) : FirSymbolNamesProvider() { - abstract fun computeTopLevelClassifierNames(packageFqName: FqName): Set? + abstract fun computeTopLevelClassifierNames(packageFqName: FqName): Set? abstract fun computePackageNamesWithTopLevelCallables(): Set? abstract fun computeTopLevelCallableNames(packageFqName: FqName): Set? @@ -32,7 +32,7 @@ abstract class FirCachedSymbolNamesProvider(protected val session: FirSession) : private val topLevelCallableNamesByPackage = session.firCachesFactory.createCache(::computeTopLevelCallableNames) - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = topLevelClassifierNamesByPackage.getValue(packageFqName) override fun getPackageNamesWithTopLevelCallables(): Set? = topLevelCallablePackageNames @@ -49,7 +49,7 @@ class FirDelegatingCachedSymbolNamesProvider( session: FirSession, private val delegate: FirSymbolNamesProvider, ) : FirCachedSymbolNamesProvider(session) { - override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? = + override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? = delegate.getTopLevelClassifierNamesInPackage(packageFqName) override fun computePackageNamesWithTopLevelCallables(): Set? = @@ -68,7 +68,7 @@ open class FirCompositeCachedSymbolNamesProvider( session: FirSession, val providers: List, ) : FirCachedSymbolNamesProvider(session) { - override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? = + override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? = providers.flatMapToNullableSet { it.getTopLevelClassifierNamesInPackage(packageFqName) } override fun computePackageNamesWithTopLevelCallables(): Set? = diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolNamesProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolNamesProvider.kt index e210f92d9f5..acc635f0e61 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolNamesProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/FirSymbolNamesProvider.kt @@ -32,7 +32,7 @@ abstract class FirSymbolNamesProvider { * All usages must take into account that the result might not include `kotlin.FunctionN` (and others for which a [FunctionTypeKind] * exists). */ - abstract fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? + abstract fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? /** * Returns the set of fully qualified package names which contain a top-level callable declaration within the provider's scope. @@ -96,16 +96,16 @@ abstract class FirSymbolNamesProvider { } } -private fun Set.mayContainTopLevelClassifier(shortClassName: Name): Boolean { +private fun Set.mayContainTopLevelClassifier(shortClassName: Name): Boolean { // Symbol providers can potentially provide symbols for special names. Hence, special names have to be allowed. - return shortClassName.isSpecial || shortClassName.asString() in this + return shortClassName.isSpecial || shortClassName in this } /** * A [FirSymbolNamesProvider] for symbol providers which can't provide any symbol name sets. */ object FirNullSymbolNamesProvider : FirSymbolNamesProvider() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = null + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? = null override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set? = null override fun getPackageNamesWithTopLevelCallables(): Set? = null override fun mayHaveTopLevelClassifier(classId: ClassId): Boolean = true @@ -116,7 +116,7 @@ object FirNullSymbolNamesProvider : FirSymbolNamesProvider() { * A [FirSymbolNamesProvider] for symbol providers which don't contain *any* symbols. */ object FirEmptySymbolNamesProvider : FirSymbolNamesProvider() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = emptySet() + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = emptySet() override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set = emptySet() override fun getPackageNamesWithTopLevelCallables(): Set = emptySet() override fun mayHaveTopLevelClassifier(classId: ClassId): Boolean = false @@ -130,7 +130,7 @@ abstract class FirSymbolNamesProviderWithoutCallables : FirSymbolNamesProvider() } open class FirCompositeSymbolNamesProvider(val providers: List) : FirSymbolNamesProvider() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? { + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set? { return providers.flatMapToNullableSet { it.getTopLevelClassifierNamesInPackage(packageFqName) } } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCachingCompositeSymbolProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCachingCompositeSymbolProvider.kt index f9f84b2af8b..1675118ad81 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCachingCompositeSymbolProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCachingCompositeSymbolProvider.kt @@ -43,7 +43,7 @@ class FirCachingCompositeSymbolProvider( session, providers.map { it.symbolNamesProvider }, ) { - override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? = + override fun computeTopLevelClassifierNames(packageFqName: FqName): Set? = super.computeTopLevelClassifierNames(packageFqName).also { ensureNotNull(it) { "classifier names in package $packageFqName" } } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt index 1d36b011b8b..6aa51468f2d 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirExtensionSyntheticFunctionInterfaceProvider.kt @@ -92,7 +92,7 @@ abstract class FirSyntheticFunctionInterfaceProviderBase( override fun mayHaveSyntheticFunctionType(classId: ClassId): Boolean = classId.getAcceptableFunctionTypeKind() != null - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = // Generated function type names aren't included in the top-level classifier names set. emptySet() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt index 47860742b73..9d0039a0f06 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirCloneableSymbolProvider.kt @@ -79,9 +79,9 @@ class FirCloneableSymbolProvider( } override val symbolNamesProvider: FirSymbolNamesProvider = object : FirSymbolNamesProviderWithoutCallables() { - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = if (packageFqName == StandardClassIds.Cloneable.packageFqName) { - setOf(StandardClassIds.Cloneable.shortClassName.asString()) + setOf(StandardClassIds.Cloneable.shortClassName) } else emptySet() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt index 40d4d4e42d2..b46f73024b1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt @@ -85,8 +85,8 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotli override fun getPackageNamesWithTopLevelCallables(): Set = state.allSubPackages.mapTo(mutableSetOf()) { it.asString() } - override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = - state.classifierInPackage[packageFqName].orEmpty().mapTo(mutableSetOf()) { it.asString() } + override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set = + state.classifierInPackage[packageFqName].orEmpty() override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set = buildSet { for (key in state.functionMap.keys) {