From a14f3c8cc2691de03837029fe7383b6e0dd787dd Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Thu, 9 Feb 2023 18:58:57 +0200 Subject: [PATCH] [K/N] Fixed wrong initializer call extraction for interop-visible functions #KT-56521 Fixed --- .../optimizations/StaticInitializersOptimization.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt index fefdb696b4b..d957df96207 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt @@ -162,13 +162,13 @@ internal object StaticInitializersOptimization { val containter = function.calledInitializer ?: return@forEach val backingField = (function as? IrSimpleFunction)?.correspondingPropertySymbol?.owner?.backingField val isDefaultAccessor = backingField != null && function.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR - if ((!functionInitializedFiles.get(containerIds[containter]!!) - && function !in functionsWhoseInitializerCallCanBeExtractedToCallSites + val initializerCallCouldBeDropped = + functionInitializedFiles.get(containerIds[containter]!!) + || function in functionsWhoseInitializerCallCanBeExtractedToCallSites // Extract calls to file initializers off of default accessors to simplify their inlining. - && (!isDefaultAccessor || function in rootSet)) - ) { + || isDefaultAccessor + if (function in rootSet || !initializerCallCouldBeDropped) result += function - } } return result }