[IR] Simplify ExpectActualCollector, remove nesting
This commit is contained in:
committed by
Space Team
parent
010c7acc3a
commit
a54b56d74e
+16
-17
@@ -23,7 +23,7 @@ internal class ExpectActualCollector(private val mainFragment: IrModuleFragment,
|
|||||||
val result = mutableMapOf<IrSymbol, IrSymbol>()
|
val result = mutableMapOf<IrSymbol, IrSymbol>()
|
||||||
// Collect and link classifiers at first to make it possible to expand type aliases on the callables linking
|
// Collect and link classifiers at first to make it possible to expand type aliases on the callables linking
|
||||||
val (allActualDeclarations, typeAliasMap) = result.appendExpectActualClassifiersMap()
|
val (allActualDeclarations, typeAliasMap) = result.appendExpectActualClassifiersMap()
|
||||||
result.appendExpectActualCallablesMap(allActualDeclarations, typeAliasMap, dependentFragments)
|
result.appendExpectActualCallablesMap(allActualDeclarations, typeAliasMap)
|
||||||
return result to typeAliasMap
|
return result to typeAliasMap
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +44,19 @@ internal class ExpectActualCollector(private val mainFragment: IrModuleFragment,
|
|||||||
return allActualDeclarations to typeAliasMap
|
return allActualDeclarations to typeAliasMap
|
||||||
}
|
}
|
||||||
|
|
||||||
class ActualClassifiersCollector(
|
private fun MutableMap<IrSymbol, IrSymbol>.appendExpectActualCallablesMap(
|
||||||
|
allActualDeclarations: Set<IrDeclaration>,
|
||||||
|
typeAliasMap: Map<FqName, FqName>
|
||||||
|
) {
|
||||||
|
val actualMembers = mutableMapOf<String, IrDeclarationBase>()
|
||||||
|
|
||||||
|
collectActualCallables(this, actualMembers, allActualDeclarations)
|
||||||
|
val collector = CallablesLinkCollector(this, actualMembers, typeAliasMap)
|
||||||
|
dependentFragments.forEach { collector.visitModuleFragment(it) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ActualClassifiersCollector(
|
||||||
private val actualClassifiers: MutableMap<FqName, IrSymbol>,
|
private val actualClassifiers: MutableMap<FqName, IrSymbol>,
|
||||||
private val allActualClassifiers: MutableSet<IrDeclaration>,
|
private val allActualClassifiers: MutableSet<IrDeclaration>,
|
||||||
private val typeAliasMap: MutableMap<FqName, FqName>
|
private val typeAliasMap: MutableMap<FqName, FqName>
|
||||||
@@ -92,7 +104,7 @@ internal class ExpectActualCollector(private val mainFragment: IrModuleFragment,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ClassifiersLinkCollector(
|
private class ClassifiersLinkCollector(
|
||||||
private val expectActualMap: MutableMap<IrSymbol, IrSymbol>,
|
private val expectActualMap: MutableMap<IrSymbol, IrSymbol>,
|
||||||
private val actualClassifiers: Map<FqName, IrSymbol>
|
private val actualClassifiers: Map<FqName, IrSymbol>
|
||||||
) : IrElementVisitorVoid {
|
) : IrElementVisitorVoid {
|
||||||
@@ -126,18 +138,6 @@ internal class ExpectActualCollector(private val mainFragment: IrModuleFragment,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun MutableMap<IrSymbol, IrSymbol>.appendExpectActualCallablesMap(
|
|
||||||
allActualDeclarations: Set<IrDeclaration>,
|
|
||||||
typeAliasMap: Map<FqName, FqName>,
|
|
||||||
dependentFragments: List<IrModuleFragment>
|
|
||||||
) {
|
|
||||||
val actualMembers = mutableMapOf<String, IrDeclarationBase>()
|
|
||||||
|
|
||||||
collectActualCallables(this, actualMembers, allActualDeclarations)
|
|
||||||
val collector = CallablesLinkCollector(this, actualMembers, typeAliasMap)
|
|
||||||
dependentFragments.forEach { collector.visitModuleFragment(it) }
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun collectActualCallables(
|
private fun collectActualCallables(
|
||||||
expectActualMap: MutableMap<IrSymbol, IrSymbol>,
|
expectActualMap: MutableMap<IrSymbol, IrSymbol>,
|
||||||
actualMembers: MutableMap<String, IrDeclarationBase>,
|
actualMembers: MutableMap<String, IrDeclarationBase>,
|
||||||
@@ -162,7 +162,7 @@ internal class ExpectActualCollector(private val mainFragment: IrModuleFragment,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class CallablesLinkCollector(
|
private class CallablesLinkCollector(
|
||||||
private val expectActualMap: MutableMap<IrSymbol, IrSymbol>,
|
private val expectActualMap: MutableMap<IrSymbol, IrSymbol>,
|
||||||
private val actualMembers: Map<String, IrDeclarationBase>,
|
private val actualMembers: Map<String, IrDeclarationBase>,
|
||||||
private val typeAliasMap: Map<FqName, FqName>
|
private val typeAliasMap: Map<FqName, FqName>
|
||||||
@@ -190,4 +190,3 @@ internal class ExpectActualCollector(private val mainFragment: IrModuleFragment,
|
|||||||
element.acceptChildrenVoid(this)
|
element.acceptChildrenVoid(this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user