[FIR2IR] Slightly refactor ConversionUtils
This commit is contained in:
@@ -213,36 +213,29 @@ private val simpleDeclarationCollector: (FirDeclaration, MutableMap<Name, FirDec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun FirClass<*>.collectCallableNamesFromSupertypes(
|
internal fun FirClass<*>.collectCallableNamesFromSupertypes(session: FirSession): Set<Name> {
|
||||||
session: FirSession,
|
val result = mutableMapOf<Name, FirDeclaration>()
|
||||||
result: MutableMap<Name, FirDeclaration> = mutableMapOf(),
|
|
||||||
record: (FirDeclaration, MutableMap<Name, FirDeclaration>) -> Unit = simpleDeclarationCollector
|
|
||||||
): Set<Name> {
|
|
||||||
for (superTypeRef in superTypeRefs) {
|
for (superTypeRef in superTypeRefs) {
|
||||||
superTypeRef.collectDeclarationsFromThisAndSupertypes(session, result, record)
|
superTypeRef.collectDeclarationsFromThisAndSupertypes(session, result, simpleDeclarationCollector)
|
||||||
}
|
}
|
||||||
return result.keys
|
return result.keys
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun FirClass<*>.collectContributedFunctionsFromSupertypes(
|
internal fun FirClass<*>.collectContributedFunctionsFromSupertypes(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
result: MutableMap<Name, FirDeclaration> = mutableMapOf(),
|
record: (FirDeclaration, MutableMap<Name, FirDeclaration>) -> Unit
|
||||||
record: (FirDeclaration, MutableMap<Name, FirDeclaration>) -> Unit = { declaration, map ->
|
|
||||||
if (declaration is FirSimpleFunction && declaration.body != null) {
|
|
||||||
map.putIfAbsent(declaration.name, declaration)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
): Map<Name, FirDeclaration> {
|
): Map<Name, FirDeclaration> {
|
||||||
|
val result = mutableMapOf<Name, FirDeclaration>()
|
||||||
for (superTypeRef in superTypeRefs) {
|
for (superTypeRef in superTypeRefs) {
|
||||||
superTypeRef.collectDeclarationsFromThisAndSupertypes(session, result, record)
|
superTypeRef.collectDeclarationsFromThisAndSupertypes(session, result, record)
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirClass<*>.collectDeclarationsFromSupertypes(
|
private fun FirClass<*>.collectDeclarationsFromSupertypes(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
result: MutableMap<Name, FirDeclaration> = mutableMapOf(),
|
result: MutableMap<Name, FirDeclaration>,
|
||||||
record: (FirDeclaration, MutableMap<Name, FirDeclaration>) -> Unit = simpleDeclarationCollector
|
record: (FirDeclaration, MutableMap<Name, FirDeclaration>) -> Unit
|
||||||
): Map<Name, FirDeclaration> {
|
): Map<Name, FirDeclaration> {
|
||||||
for (superTypeRef in superTypeRefs) {
|
for (superTypeRef in superTypeRefs) {
|
||||||
superTypeRef.collectDeclarationsFromThisAndSupertypes(session, result, record)
|
superTypeRef.collectDeclarationsFromThisAndSupertypes(session, result, record)
|
||||||
@@ -252,8 +245,8 @@ fun FirClass<*>.collectDeclarationsFromSupertypes(
|
|||||||
|
|
||||||
private fun FirTypeRef.collectDeclarationsFromThisAndSupertypes(
|
private fun FirTypeRef.collectDeclarationsFromThisAndSupertypes(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
result: MutableMap<Name, FirDeclaration> = mutableMapOf(),
|
result: MutableMap<Name, FirDeclaration>,
|
||||||
record: (FirDeclaration, MutableMap<Name, FirDeclaration>) -> Unit = simpleDeclarationCollector
|
record: (FirDeclaration, MutableMap<Name, FirDeclaration>) -> Unit
|
||||||
): Map<Name, FirDeclaration> {
|
): Map<Name, FirDeclaration> {
|
||||||
if (this is FirResolvedTypeRef) {
|
if (this is FirResolvedTypeRef) {
|
||||||
val superType = type
|
val superType = type
|
||||||
|
|||||||
Reference in New Issue
Block a user