diff --git a/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/impl/PendingDiagnosticsCollectorWithSuppress.kt b/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/impl/PendingDiagnosticsCollectorWithSuppress.kt index 480ba716f4c..a52c47faed7 100644 --- a/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/impl/PendingDiagnosticsCollectorWithSuppress.kt +++ b/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/impl/PendingDiagnosticsCollectorWithSuppress.kt @@ -33,8 +33,11 @@ class PendingDiagnosticsCollectorWithSuppress(override val rawReport: (Boolean, element: AbstractKtSourceElement, context: DiagnosticContext? ) { + if (pendingDiagnosticsByFilePath.isEmpty()) return val commitEverything = context == null - for ((path, pendingList) in pendingDiagnosticsByFilePath) { + val pendingIterator = pendingDiagnosticsByFilePath.iterator() + while (pendingIterator.hasNext()) { + val (path, pendingList) = pendingIterator.next() val committedList = _diagnosticsByFilePath.getOrPut(path) { mutableListOf() } val iterator = pendingList.iterator() while (iterator.hasNext()) { @@ -56,6 +59,9 @@ class PendingDiagnosticsCollectorWithSuppress(override val rawReport: (Boolean, } } } + if (pendingList.isEmpty()) { + pendingIterator.remove() + } } } }