[IR] Simplify usage of IrOverrideUtil
It had some copy-pasted code for counting current file on each use-site. Now it's encapsulated in strategy. KT-61934
This commit is contained in:
committed by
Space Team
parent
2b8b6a2b21
commit
9fd057d7c3
+6
-9
@@ -86,6 +86,11 @@ private class IrLinkerFakeOverrideBuilderStrategy(
|
||||
friendModules = friendModules,
|
||||
unimplementedOverridesStrategy = unimplementedOverridesStrategy
|
||||
) {
|
||||
|
||||
override fun inFile(file: IrFile?, block: () -> Unit) {
|
||||
fakeOverrideDeclarationTable.inFile(file, block)
|
||||
}
|
||||
|
||||
override fun linkFunctionFakeOverride(function: IrFunctionWithLateBinding, manglerCompatibleMode: Boolean) {
|
||||
val (signature, symbol) = computeFunctionFakeOverrideSymbol(function, manglerCompatibleMode)
|
||||
|
||||
@@ -286,19 +291,11 @@ class IrLinkerFakeOverrideProvider(
|
||||
|
||||
if (!platformSpecificClassFilter.needToConstructFakeOverrides(clazz)) return false
|
||||
|
||||
buildFakeOverridesForSingleClass(clazz, compatibilityMode)
|
||||
irOverridingUtil.buildFakeOverridesForClass(clazz, compatibilityMode.oldSignatures)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
fun buildFakeOverridesForSingleClass(clazz: IrClass, compatibilityMode: CompatibilityMode) {
|
||||
fakeOverrideDeclarationTable.run {
|
||||
inFile(clazz.fileOrNull) {
|
||||
irOverridingUtil.buildFakeOverridesForClass(clazz, compatibilityMode.oldSignatures)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun provideFakeOverrides(klass: IrClass, compatibilityMode: CompatibilityMode) {
|
||||
buildFakeOverrideChainsForClass(klass, compatibilityMode)
|
||||
haveFakeOverrides.add(klass)
|
||||
|
||||
Reference in New Issue
Block a user