@Override
    public void visitIfStatement(@NotNull PsiIfStatement statement) {
      CodeFragmentEvaluator oldFragmentEvaluator = setNewCodeFragmentEvaluator();
      try {
        PsiStatement thenBranch = statement.getThenBranch();
        if (thenBranch == null) return;
        thenBranch.accept(this);
        Evaluator thenEvaluator = myResult;

        PsiStatement elseBranch = statement.getElseBranch();
        Evaluator elseEvaluator = null;
        if (elseBranch != null) {
          elseBranch.accept(this);
          elseEvaluator = myResult;
        }

        PsiExpression condition = statement.getCondition();
        if (condition == null) return;
        condition.accept(this);

        myResult = new IfStatementEvaluator(new UnBoxingEvaluator(myResult), thenEvaluator, elseEvaluator);
      }
      finally {
        myCurrentFragmentEvaluator = oldFragmentEvaluator;
      }
    }
@Override
    public void visitIfStatement(@NotNull PsiIfStatement statement)