method ref: conflict when change signature of method used in method ref (IDEA-92601)

This commit is contained in:
anna
2012-10-15 16:20:58 +02:00
parent e775459321
commit 2e4e9ebc58
2 changed files with 7 additions and 1 deletions
@@ -885,8 +885,9 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
}
for (UsageInfo usageInfo : usagesSet) {
final PsiElement element = usageInfo.getElement();
if (usageInfo instanceof OverriderUsageInfo) {
final PsiMethod method = (PsiMethod)usageInfo.getElement();
final PsiMethod method = (PsiMethod)element;
final PsiMethod baseMethod = ((OverriderUsageInfo)usageInfo).getBaseMethod();
final int delta = baseMethod.getParameterList().getParametersCount() - method.getParameterList().getParametersCount();
if (delta > 0) {
@@ -895,6 +896,8 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
conflictDescriptions.putValue(baseMethod, "Implicit last parameter should not be deleted");
}
}
} else if (element instanceof PsiMethodReferenceExpression) {
conflictDescriptions.putValue(element, "Changed method is used in method reference");
}
}
@@ -266,6 +266,9 @@ class JavaChangeSignatureUsageSearcher {
else if (element instanceof XmlElement) {
result.add(new MoveRenameUsageInfo(reference, method));
}
else if (element instanceof PsiMethodReferenceExpression) {
result.add(new UsageInfo(reference));
}
}
}