diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt index b53f2336bb8..53f944a6a14 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitInitializerConversion.kt @@ -87,16 +87,21 @@ class ImplicitInitializerConversion(private val context: NewJ2kConverterContext) constructors[context.symbolProvider.provideUniverseSymbol(constructor)] = true } + val constructorsToInitialize = mutableListOf() for ((constructor, initialized) in constructors) { if (initialized) continue val parentConstructors = generateSequence(constructor) { it.parentConstructor() } if (parentConstructors.any { constructors[it] == true }) { - parentConstructors.forEach { constructors[it] = true } + constructorsToInitialize += parentConstructors } } + for (constructor in constructorsToInitialize) { + constructors[constructor] = true + } + val initializedInConstructorsCount = constructors.values.count { it } return when (initializedInConstructorsCount) { 0 -> InitializationState.NON_INITIALIZED