diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/IrElementTransformerVoidWithContext.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/IrElementTransformerVoidWithContext.kt index 8871d561c1b..2186bda8a21 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/IrElementTransformerVoidWithContext.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/IrElementTransformerVoidWithContext.kt @@ -31,11 +31,14 @@ abstract class IrElementTransformerVoidWithContext(): IrElementTransformerVoid() private fun MutableList.peek(): E? = if (size == 0) null else this[size - 1] private val functionsStack = mutableListOf() + private val functionDeclarationsStack = mutableListOf() private val classesStack = mutableListOf() override final fun visitFunction(declaration: IrFunction): IrStatement { functionsStack.push(declaration.descriptor) + functionDeclarationsStack.push(declaration) val result = visitFunctionNew(declaration) + functionDeclarationsStack.pop() functionsStack.pop() return result } @@ -48,6 +51,7 @@ abstract class IrElementTransformerVoidWithContext(): IrElementTransformerVoid() } protected val currentFunction get() = functionsStack.peek() + protected val currentFunctionDeclaration get() = functionDeclarationsStack.peek() protected val currentClass get() = classesStack.peek() open fun visitFunctionNew(declaration: IrFunction) : IrStatement {