New J2K: fix ConcurrentModificationException while analysing implicit initializers
This commit is contained in:
@@ -87,16 +87,21 @@ class ImplicitInitializerConversion(private val context: NewJ2kConverterContext)
|
||||
constructors[context.symbolProvider.provideUniverseSymbol(constructor)] = true
|
||||
}
|
||||
|
||||
val constructorsToInitialize = mutableListOf<JKMethodSymbol>()
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user