static @NlsSafe @Nullable String getPlainComparatorExpressionFromReversed(PsiExpression expression, CommentTracker ct) {
    PsiMethodCallExpression call = tryCast(PsiUtil.skipParenthesizedExprDown(expression), PsiMethodCallExpression.class);
    if (call == null) return null;
    if (COMPARATOR_REVERSED.test(call)) {
      PsiExpression qualifier = call.getMethodExpression().getQualifierExpression();
      return qualifier == null ? null : ct.text(qualifier);
    }
    if (REVERSE_ORDER_FOR_COMPARATOR.test(call)) {
      PsiExpression arg = call.getArgumentList().getExpressions()[0];
      PsiType type = call.getType();
      if (type != null && type.equals(arg.getType())) {
        return ct.text(arg);
      }
    }
    if (REVERSE_ORDER_FOR_NATURAL.test(call)) {
      if (!InheritanceUtil.isInheritor(PsiUtil.substituteTypeParameter(call.getType(), JAVA_UTIL_COMPARATOR, 0, false),
                                       JAVA_LANG_COMPARABLE)) {
        return null;
      }
      PsiReferenceParameterList parameterList = call.getMethodExpression().getParameterList();
      return JAVA_UTIL_COMPARATOR + "."+(parameterList == null ? "" : ct.text(parameterList))+"naturalOrder()";
    }
    if (COMPARATOR_COMPARING_WITH_DOWNSTREAM.test(call) && REVERSE_ORDER_FOR_NATURAL.matches(call.getArgumentList().getExpressions()[1])) {
      return ct.text(call.getMethodExpression()) + "(" + ct.text(call.getArgumentList().getExpressions()[0]) + ")";
    }
    return null;
  }
static @NlsSafe @Nullable String getPlainComparatorExpressionFromReversed(PsiExpression expression, CommentTracker ct)