diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java index c80ab2dd743..25c2def5e92 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java @@ -40,6 +40,7 @@ import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashSet; import com.intellij.util.containers.MultiMap; +import jet.runtime.typeinfo.JetValueParameter; import kotlin.KotlinPackage; import kotlin.Unit; import kotlin.jvm.functions.Function1; @@ -55,6 +56,7 @@ import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde; import org.jetbrains.kotlin.idea.codeInsight.JetFileReferencesResolver; import org.jetbrains.kotlin.idea.core.refactoring.RefactoringPackage; import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.*; +import org.jetbrains.kotlin.idea.refactoring.rename.UnresolvableConventionViolationUsageInfo; import org.jetbrains.kotlin.idea.references.JetSimpleNameReference; import org.jetbrains.kotlin.idea.search.usagesSearch.UsagesSearchPackage; import org.jetbrains.kotlin.kdoc.psi.impl.KDocName; @@ -381,10 +383,25 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro public MultiMap findConflicts(ChangeInfo info, Ref refUsages) { MultiMap result = new MultiMap(); - if (!(info instanceof JetChangeInfo)) { - return result; + // Delete OverriderUsageInfo for Kotlin declarations since they can't be processed correctly + // TODO: Drop when OverriderUsageInfo.getElement() gets deleted + UsageInfo[] usageInfos = refUsages.get(); + List adjustedUsages = KotlinPackage.filterNot( + usageInfos, + new Function1() { + @Override + public Boolean invoke(UsageInfo info) { + return info instanceof OverriderUsageInfo && + ((OverriderUsageInfo) info).getOverridingMethod() instanceof KotlinLightMethod; + } + } + ); + if (adjustedUsages.size() < usageInfos.length) { + refUsages.set(adjustedUsages.toArray(new UsageInfo[adjustedUsages.size()])); } + if (!(info instanceof JetChangeInfo)) return result; + Set parameterNames = new HashSet(); JetChangeInfo changeInfo = (JetChangeInfo) info; PsiElement function = info.getMethod();