void (@NotNull PsiBinaryExpression expression) { super.visitBinaryExpression(expression); final IElementType tokenType = expression.getOperationTokenType(); if (!tokenType.equals(JavaTokenType.MINUS) || isSafeSubtraction(expression)) { return; } final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(expression, PsiLambdaExpression.class, true, PsiMember.class); if (lambdaExpression != null) { final PsiClass functionalInterface = LambdaUtil.resolveFunctionalInterfaceClass(lambdaExpression); if (functionalInterface != null && CommonClassNames.JAVA_UTIL_COMPARATOR.equals(functionalInterface.getQualifiedName())) { registerError(expression); return; } } final PsiMethod method = PsiTreeUtil.getParentOfType(expression, PsiMethod.class, true, PsiClass.class, PsiLambdaExpression.class); if (!MethodUtils.isCompareTo(method) && !MethodUtils.isComparatorCompare(method)) { return; } registerError(expression); }