[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:
Marco Pennekamp
2023-10-19 19:21:45 +02:00
committed by Space Team
parent 8034d522b9
commit efe587691b
16 changed files with 43 additions and 41 deletions
@@ -94,8 +94,11 @@ abstract class AbstractFirDeserializedSymbolProvider(
}
override val symbolNamesProvider: FirSymbolNamesProvider = object : FirCachedSymbolNamesProvider(session) {
override fun computeTopLevelClassifierNames(packageFqName: FqName): Set<String>? {
val classesInPackage = knownTopLevelClassesInPackage(packageFqName) ?: return null
override fun computeTopLevelClassifierNames(packageFqName: FqName): Set<Name>? {
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)
}
}
@@ -88,9 +88,9 @@ open class FirBuiltinSymbolProvider(
override fun getPackageNamesWithTopLevelCallables(): Set<String> =
allPackageFragments.keys.mapTo(mutableSetOf()) { it.asString() }
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<String> =
override fun getTopLevelClassifierNamesInPackage(packageFqName: FqName): Set<Name> =
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<Name> =