mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-CR-13704 follow-up: check for arguments array length; MethodUtils::isCompareToCall: avoid resolution if method name differs
This commit is contained in:
+5
-5
@@ -42,18 +42,18 @@ public class ComparatorCombinatorsInspection extends BaseJavaBatchLocalInspectio
|
||||
PsiElement body = lambda.getBody();
|
||||
if(body instanceof PsiMethodCallExpression) {
|
||||
PsiMethodCallExpression methodCall = (PsiMethodCallExpression)body;
|
||||
if(MethodUtils.isCompareToCall(methodCall)) {
|
||||
PsiExpression[] args = methodCall.getArgumentList().getExpressions();
|
||||
if(args.length == 1 && MethodUtils.isCompareToCall(methodCall)) {
|
||||
PsiExpression left = methodCall.getMethodExpression().getQualifierExpression();
|
||||
PsiExpression right = methodCall.getArgumentList().getExpressions()[0];
|
||||
PsiExpression right = args[0];
|
||||
if(areEquivalent(lambda.getParameterList().getParameters(), left, right)) {
|
||||
holder.registerProblem(lambda, "Can be replaced with Comparator.comparing", new ReplaceWithComparatorFix("comparing"));
|
||||
}
|
||||
} else {
|
||||
PsiMethod method = methodCall.resolveMethod();
|
||||
if(method != null && method.getName().equals("compare")) {
|
||||
PsiExpression[] args = methodCall.getArgumentList().getExpressions();
|
||||
if(args.length == 2 && method != null && method.getName().equals("compare")) {
|
||||
PsiClass compareClass = method.getContainingClass();
|
||||
if(args.length == 2 && compareClass != null) {
|
||||
if(compareClass != null) {
|
||||
String replacementMethodName;
|
||||
if(CommonClassNames.JAVA_LANG_DOUBLE.equals(compareClass.getQualifiedName())) {
|
||||
replacementMethodName = "comparingDouble";
|
||||
|
||||
+2
-1
@@ -370,7 +370,8 @@ public class MethodUtils {
|
||||
return false;
|
||||
}
|
||||
final PsiMethodCallExpression methodCallExpression = (PsiMethodCallExpression)expression;
|
||||
if (methodCallExpression.getMethodExpression().getQualifierExpression() == null) {
|
||||
if (methodCallExpression.getMethodExpression().getQualifierExpression() == null ||
|
||||
!HardcodedMethodConstants.COMPARE_TO.equals(methodCallExpression.getMethodExpression().getReferenceName())) {
|
||||
return false;
|
||||
}
|
||||
final PsiMethod psiMethod = methodCallExpression.resolveMethod();
|
||||
|
||||
Reference in New Issue
Block a user