From e6cfced54ac99eb7a2d53ce5e121f57703f66ad1 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 17 Apr 2020 15:54:11 +0300 Subject: [PATCH] Don't collect all usages at once --- .../org/jetbrains/kotlin/idea/slicer/InflowSlicer.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/slicer/InflowSlicer.kt b/idea/src/org/jetbrains/kotlin/idea/slicer/InflowSlicer.kt index 48773685252..b6a6bcc30cb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/slicer/InflowSlicer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/slicer/InflowSlicer.kt @@ -10,6 +10,7 @@ import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.SearchScope import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.usageView.UsageInfo +import com.intellij.util.Processor import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.* @@ -112,9 +113,13 @@ class InflowSlicer( ) { ReferencesSearch.search(function, analysisScope) - .filterIsInstance() - .mapNotNull { it.element.parent as? KtProperty } - .forEach { it.processPropertyAssignments() } + .forEach(Processor { reference -> + if (reference is KtPropertyDelegationMethodsReference) { + val property = reference.element.parent as? KtProperty + property?.processPropertyAssignments() + } + true + }) } val parameterDescriptor = parameter.resolveToParameterDescriptorIfAny() ?: return