void (@NotNull PsiConditionalExpression expression) { super.visitConditionalExpression(expression); final PsiExpression thenExpression = expression.getThenExpression(); if (thenExpression == null) { return; } final PsiExpression elseExpression = expression.getElseExpression(); final EquivalenceChecker.Match match = EquivalenceChecker.getCanonicalPsiEquivalence().expressionsMatch(thenExpression, elseExpression); if (match.isExactMismatch() || match.isExactMatch()) { return; } final PsiElement leftDiff = match.getLeftDiff(); if (!(leftDiff instanceof PsiExpression) || leftDiff.getParent() instanceof PsiStatement) { return; } final PsiType type = ((PsiExpression)leftDiff).getType(); if (type == null || PsiTypes.voidType().equals(type)) { return; } if (ignoreSingleArgument && isOnlyArgumentOfMethodCall(leftDiff, expression)) { if (!isOnTheFly()) return; registerError(expression, ProblemHighlightType.INFORMATION); } else { registerError(expression, ProblemHighlightType.GENERIC_ERROR_OR_WARNING); } }