Don't collect all usages at once

This commit is contained in:
Valentin Kipyatkov
2020-04-17 15:54:11 +03:00
parent 31a1b2ddd3
commit e6cfced54a
@@ -10,6 +10,7 @@ import com.intellij.psi.search.LocalSearchScope
import com.intellij.psi.search.SearchScope import com.intellij.psi.search.SearchScope
import com.intellij.psi.search.searches.ReferencesSearch import com.intellij.psi.search.searches.ReferencesSearch
import com.intellij.usageView.UsageInfo import com.intellij.usageView.UsageInfo
import com.intellij.util.Processor
import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor import org.jetbrains.kotlin.builtins.functions.FunctionInvokeDescriptor
import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction import org.jetbrains.kotlin.cfg.pseudocode.instructions.Instruction
import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.* import org.jetbrains.kotlin.cfg.pseudocode.instructions.eval.*
@@ -112,9 +113,13 @@ class InflowSlicer(
) { ) {
ReferencesSearch.search(function, analysisScope) ReferencesSearch.search(function, analysisScope)
.filterIsInstance<KtPropertyDelegationMethodsReference>() .forEach(Processor { reference ->
.mapNotNull { it.element.parent as? KtProperty } if (reference is KtPropertyDelegationMethodsReference) {
.forEach { it.processPropertyAssignments() } val property = reference.element.parent as? KtProperty
property?.processPropertyAssignments()
}
true
})
} }
val parameterDescriptor = parameter.resolveToParameterDescriptorIfAny() ?: return val parameterDescriptor = parameter.resolveToParameterDescriptorIfAny() ?: return