@NotNull
      @Override
      public String generateReplacement(@NotNull PsiElementFactory factory,
                                        @NotNull CommentTracker ct,
                                        @NotNull PsiReferenceExpression optionalVariable,
                                        PsiElement trueElement,
                                        PsiElement falseElement) {
        PsiExpression ternary = PsiTreeUtil.getParentOfType(trueElement, PsiConditionalExpression.class);
        LOG.assertTrue(ternary != null);
        PsiExpression trueExpression = (PsiExpression)trueElement;
        PsiExpression falseExpression = (PsiExpression)falseElement;
        return generateOptionalUnwrap(factory, ct, optionalVariable, trueExpression, falseExpression, ternary.getType());
      }
@NotNull
      @Override
      public String generateReplacement(@NotNull PsiElementFactory factory,
                                        @NotNull CommentTracker ct,
                                        @NotNull PsiReferenceExpression optionalVariable,
                                        PsiElement trueElement,
                                        PsiElement falseElement)