From 9a514dfdd91a56fecc1c2a35a84b1702f8dcf8d3 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 24 Dec 2019 18:38:32 +0300 Subject: [PATCH] FIR invoke consumer: do not process last data twice --- .../jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt index 6b685c4fb51..3005a776e56 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TowerDataConsumers.kt @@ -143,7 +143,8 @@ class AccumulatingTowerDataConsumer( fun addConsumer(consumer: TowerDataConsumer): ProcessorAction { additionalConsumers += consumer - for ((kind, level, group) in accumulatedTowerData) { + if (accumulatedTowerData.isEmpty()) return ProcessorAction.NEXT + for ((kind, level, group) in accumulatedTowerData.asSequence().take(accumulatedTowerData.size - 1)) { if (consumer.consume(kind, level, group).stop()) { return ProcessorAction.STOP }