diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/ComparatorCombinatorsInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/ComparatorCombinatorsInspection.java index 65f4fdc13749..ff6b35689661 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/ComparatorCombinatorsInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/ComparatorCombinatorsInspection.java @@ -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"; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java index f69dde92483f..03af8b2bf416 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/MethodUtils.java @@ -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();