diff --git a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/stubindex/KotlinStringStubIndexHelper.kt b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/stubindex/KotlinStringStubIndexHelper.kt index 04475fb7ba8c..1c4befbbc7af 100644 --- a/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/stubindex/KotlinStringStubIndexHelper.kt +++ b/plugins/kotlin/base/indices/src/org/jetbrains/kotlin/idea/stubindex/KotlinStringStubIndexHelper.kt @@ -78,15 +78,14 @@ abstract class KotlinStringStubIndexHelper(private noinline keyFilter: (String) -> Boolean = { true }, noinline valueFilter: (SubKey) -> Boolean = { true }, ): Sequence { - val results = mutableListOf() - val processor = cancelableCollectFilterProcessor(results, filter = valueFilter) - processAllElements(project, scope, keyFilter) { key -> - if (key is SubKey) - processor.process(key) - else - true - } - return results.asSequence() // todo move valueFilter out + val results = mutableListOf() + val processor = cancelableCollectFilterProcessor(results) { key -> key is SubKey && valueFilter(key) } + + processAllElements(project, scope, keyFilter, processor) + + @Suppress("UNCHECKED_CAST") + val castedResults = results as List + return castedResults.asSequence() // todo move valueFilter out } fun processAllElements(