diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/dce/UsefulDeclarationProcessor.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/dce/UsefulDeclarationProcessor.kt index ec61c7aab19..48b6c584353 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/dce/UsefulDeclarationProcessor.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/dce/UsefulDeclarationProcessor.kt @@ -57,10 +57,7 @@ abstract class UsefulDeclarationProcessor( super.visitBlock(expression, data) if (expression is IrReturnableBlock) { - // We need to extract `originalFunction` here because saved `inlineFunction` - // is actually a copy made in `SaveInlineFunctionsBeforeInlining`. - // Without this, we are not going to find proper intersection in the `saveOnlyIntersectionOfNextDeclarationsFor` method. - expression.inlineFunction?.originalFunction?.addToUsefulPolyfilledDeclarations() + expression.inlineFunction?.addToUsefulPolyfilledDeclarations() } } diff --git a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt index 17c2900bf45..936f43330df 100644 --- a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt +++ b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt @@ -162,7 +162,7 @@ class FunctionInlining( val substituteMap = mutableMapOf() - fun inline() = inlineFunction(callSite, callee, callee, true) + fun inline() = inlineFunction(callSite, callee, callee.originalFunction, true) private fun E.copy(): E { @Suppress("UNCHECKED_CAST")