diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 0f592886b78..fe1adc73316 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -34,6 +34,7 @@ import org.jetbrains.kotlin.fir.types.isSuspendFunctionType import org.jetbrains.kotlin.fir.resolve.isKFunctionInvoke import org.jetbrains.kotlin.fir.resolve.providers.firProvider import org.jetbrains.kotlin.fir.resolve.toSymbol +import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.* import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* @@ -163,6 +164,14 @@ class Fir2IrDeclarationStorage( else -> {} } } + val scope = firClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false) + scope.getCallableNames().forEach { callableName -> + buildList { + fakeOverrideGenerator.generateFakeOverridesForName( + irClass, scope, callableName, firClass, this, realDeclarationSymbols = emptySet() + ) + }.also(fakeOverrideGenerator::bindOverriddenSymbols) + } } fun registerFile(firFile: FirFile, irFile: IrFile) { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index 27d8347949c..7a99ecc0b9d 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -101,7 +101,7 @@ class FakeOverrideGenerator( ) } - private fun generateFakeOverridesForName( + internal fun generateFakeOverridesForName( irClass: IrClass, useSiteMemberScope: FirTypeScope, name: Name,