From 57bc0d673412e45305b5058510535867125619b1 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 20 Jul 2016 12:34:36 +0300 Subject: [PATCH] Change Signature: Consider super call a by-name propagation site if either its class, or its primary constructor is a propagation target. This fixes testJavaConstructorParameterPropagation test flickering --- .../idea/refactoring/changeSignature/changeSignatureUtils.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt index b503773cfe3..0956b9ac06e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/changeSignatureUtils.kt @@ -44,7 +44,8 @@ fun KtNamedDeclaration.getDeclarationBody(): KtElement? { } fun PsiElement.isCaller(allUsages: Array): Boolean { - val elementToSearch = (this as? KtClass)?.getPrimaryConstructor() ?: this + val primaryConstructor = (this as? KtClass)?.getPrimaryConstructor() + val elementsToSearch = if (primaryConstructor != null) listOf(primaryConstructor, this) else listOf(this) return allUsages .asSequence() .filter { @@ -54,7 +55,7 @@ fun PsiElement.isCaller(allUsages: Array): Boolean { || usage is CallerUsageInfo || (usage is OverriderUsageInfo && !usage.isOriginalOverrider) } - .any { it.element == elementToSearch } + .any { it.element in elementsToSearch } } fun KtElement.isInsideOfCallerBody(allUsages: Array): Boolean {