From bcb706c8ff74e732e683915ab1451c0fa2ddaeaf Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Wed, 21 Mar 2018 12:42:07 +0300 Subject: [PATCH] Fix incorrect IR parent for worker job bridges --- .../jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt index 472a526f7c1..21d19bef5db 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/BridgesBuilding.kt @@ -53,7 +53,11 @@ internal class WorkersBridgesBuilding(val context: Context) : DeclarationContain override fun lower(irDeclarationContainer: IrDeclarationContainer) { irDeclarationContainer.declarations.transformFlat { - listOf(it) + buildWorkerBridges(it) + listOf(it) + buildWorkerBridges(it).also { bridges -> + // `buildWorkerBridges` builds bridges for all declarations inside `it` and nested declarations, + // so some bridges get incorrect parent. Fix it: + bridges.forEach { bridge -> bridge.parent = irDeclarationContainer } + } } }