void (@NotNull PsiMethodCallExpression expression) { super.visitMethodCallExpression(expression); final PsiExpression[] arguments = expression.getArgumentList().getExpressions(); if (OBJECT_EQUALS.test(expression)) { PsiExpression expression1 = PsiUtil.skipParenthesizedExprDown(ExpressionUtils.getEffectiveQualifier(expression.getMethodExpression())); PsiExpression expression2 = PsiUtil.skipParenthesizedExprDown(arguments[0]); checkTypes(expression, expression1, expression2); } else if (STATIC_EQUALS.test(expression)) { PsiExpression expression1 = PsiUtil.skipParenthesizedExprDown(arguments[0]); PsiExpression expression2 = PsiUtil.skipParenthesizedExprDown(arguments[1]); checkTypes(expression, expression1, expression2); } else if (PREDICATE_IS_EQUAL.test(expression)) { PsiExpression expression1 = PsiUtil.skipParenthesizedExprDown(arguments[0]); PsiType psiType1 = getType(expression1); PsiType psiType2 = resolveIsEqualPredicateType(expression); if (psiType1 == null || psiType2 == null) { return; } checkTypes(expression.getMethodExpression(), psiType1, psiType2); } }