[FIR] Type "top-level classifier names in package" as Name
- This is more consistent with "top-level callable names in package" and simplifies the set construction quite a bit, as we can avoid a lot of `asString` conversions.
This commit is contained in:
committed by
Space Team
parent
8034d522b9
commit
efe587691b
+1
-1
@@ -51,7 +51,7 @@ internal class LLFirCombinedJavaSymbolProvider private constructor(
|
||||
private val classCache: NullableCaffeineCache<ClassId, FirRegularClassSymbol> = NullableCaffeineCache { it.maximumSize(2500) }
|
||||
|
||||
override val symbolNamesProvider: FirSymbolNamesProvider = object : FirSymbolNamesProviderWithoutCallables() {
|
||||
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<String>? = null
|
||||
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<Name>? = null
|
||||
override fun mayHaveTopLevelClassifier(classId: ClassId): Boolean = true
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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<String> = emptySet()
|
||||
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<Name> = emptySet()
|
||||
override fun getPackageNamesWithTopLevelCallables(): Set<String> = emptySet()
|
||||
override fun getTopLevelCallableNamesInPackage(packageFqName: FqName): Set<Name> = emptySet()
|
||||
}
|
||||
|
||||
+2
-4
@@ -75,11 +75,9 @@ private class LLFirResolveExtensionToolSymbolNamesProvider(
|
||||
private val packageFilter: LLFirResolveExtensionToolPackageFilter,
|
||||
private val fileProvider: LLFirResolveExtensionsFileProvider,
|
||||
) : FirSymbolNamesProvider() {
|
||||
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<String> = forbidAnalysis {
|
||||
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<Name> = 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<String> = forbidAnalysis {
|
||||
|
||||
+2
-4
@@ -25,12 +25,10 @@ internal open class LLFirKotlinSymbolNamesProvider(
|
||||
private val declarationProvider: KotlinDeclarationProvider,
|
||||
private val allowKotlinPackage: Boolean? = null,
|
||||
) : FirSymbolNamesProvider() {
|
||||
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<String> {
|
||||
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<Name> {
|
||||
if (allowKotlinPackage == false && packageFqName.isKotlinPackage()) return emptySet()
|
||||
|
||||
return declarationProvider
|
||||
.getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName)
|
||||
.mapToSetOrEmpty { it.asString() }
|
||||
return declarationProvider.getTopLevelKotlinClassLikeDeclarationNamesInPackage(packageFqName)
|
||||
}
|
||||
|
||||
override fun getPackageNamesWithTopLevelCallables(): Set<String>? {
|
||||
|
||||
Reference in New Issue
Block a user