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 239aea03dc0..140bc064e73 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 @@ -1200,11 +1200,13 @@ class Fir2IrDeclarationStorage( private fun computeDeclarationOrigin( symbol: FirCallableSymbol<*>, parentOrigin: IrDeclarationOrigin - ): IrDeclarationOrigin { - return if (symbol.fir.isIntersectionOverride || symbol.fir.isSubstitutionOverride) - IrDeclarationOrigin.FAKE_OVERRIDE - else - parentOrigin + ): IrDeclarationOrigin = when { + symbol.fir.isIntersectionOverride || symbol.fir.isSubstitutionOverride -> IrDeclarationOrigin.FAKE_OVERRIDE + parentOrigin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB && + (symbol.fir.origin is FirDeclarationOrigin.Enhancement || symbol.fir.origin is FirDeclarationOrigin.Java) -> { + IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB + } + else -> parentOrigin } fun getIrFieldSymbol(firFieldSymbol: FirFieldSymbol): IrSymbol {