void (PsiIfStatement statement) { IfConditionalModel model = IfConditionalModel.from(statement, true); if (model != null) { ConditionalExpressionGenerator generator = ConditionalExpressionGenerator.from(model); if (generator != null) { CommentTracker ct = new CommentTracker(); String text = generator.generate(ct); if (model.getElseExpression().textMatches(text) && !PsiTreeUtil.isAncestor(statement, model.getElseBranch(), false)) { ct.deleteAndRestoreComments(statement); } else if (model.getElseBranch() instanceof PsiDeclarationStatement){ ct.replace(model.getElseExpression(), text); ct.deleteAndRestoreComments(statement); } else { ct.replace(model.getThenExpression(), text); ct.replaceAndRestoreComments(statement, model.getThenBranch()); PsiStatement elseBranch = model.getElseBranch(); if (elseBranch.isValid() && (elseBranch instanceof PsiExpressionStatement || !ControlFlowUtils.isReachable(elseBranch))) { PsiElement sibling = elseBranch.getPrevSibling(); if (sibling instanceof PsiWhiteSpace) { sibling.delete(); } new CommentTracker().deleteAndRestoreComments(elseBranch); } } } } if (isSimplifiableAssert(statement)) { replaceSimplifiableAssert(statement); } }