@Override
    public void visitUnaryExpression(@NotNull PsiUnaryExpression expression) {
      PsiExpression operand = expression.getOperand();
      final IElementType tokenType = expression.getOperationSign().getTokenType();
      if (isBackpointerReference(operand) && (tokenType.equals(JavaTokenType.PLUSPLUS) || tokenType.equals(JavaTokenType.MINUSMINUS))) {
        while (operand instanceof PsiParenthesizedExpression) {
          operand = ((PsiParenthesizedExpression)operand).getExpression();
        }
        final PsiReferenceExpression reference = (PsiReferenceExpression)operand;

        final String operator;
        if (tokenType.equals(JavaTokenType.PLUSPLUS)) {
          operator = "+";
        }
        else {
          operator = "-";
        }
        final PsiField field = (PsiField)reference.resolve();
        assert field != null;
        if (!field.hasModifierProperty(PsiModifier.STATIC)) {
          out.append(backPointerName)
            .append('.').append(GenerateMembersUtil.suggestSetterName(field))
            .append('(')
            .append(backPointerName)
            .append('.').append(GenerateMembersUtil.suggestGetterName(field))
            .append("()")
            .append(operator)
            .append("1)");
        }
        else {
          visitElement(expression);
        }
      }
      else {
        visitElement(expression);
      }
    }
@Override
    public void visitUnaryExpression(@NotNull PsiUnaryExpression expression)