boolean ( PsiIfStatement ifStatement, PsiMethod method) { final PsiExpression condition = ifStatement.getCondition(); if (expressionDefinitelyRecurses(condition, method)) { return true; } final PsiStatement thenBranch = ifStatement.getThenBranch(); final PsiStatement elseBranch = ifStatement.getElseBranch(); if (thenBranch == null) { return false; } final Object value = ExpressionUtils.computeConstantExpression(condition); if (value == Boolean.TRUE) { return statementDefinitelyRecurses(thenBranch, method); } else if (value == Boolean.FALSE) { return elseBranch != null && statementDefinitelyRecurses(elseBranch, method); } return statementDefinitelyRecurses(thenBranch, method) && statementDefinitelyRecurses(elseBranch, method); }