private static void checkLiteral(Document document,
                                   UInjectionHost injectionHost,
                                   List<? super FoldingDescriptor> result) {
    PsiElement sourcePsi = injectionHost.getSourcePsi();
    if (sourcePsi == null) return;
    if (!isI18nProperty(injectionHost)) return;
    final IProperty property = getI18nProperty(injectionHost);
    final HashSet<Object> set = new HashSet<>();
    set.add(property != null ? property : PsiModificationTracker.MODIFICATION_COUNT);
    final String msg = formatI18nProperty(injectionHost, property);

    final UElement parent = injectionHost.getUastParent();
    if (!msg.equals(UastLiteralUtils.getValueIfStringLiteral(injectionHost)) &&
        parent instanceof UCallExpression expressions &&
        expressions.getValueArguments().get(0).getSourcePsi() == injectionHost.getSourcePsi()) {
      PsiElement callSourcePsi = expressions.getSourcePsi();
      if (callSourcePsi == null) return;
      final int count = JavaI18nUtil.getPropertyValueParamsMaxCount(injectionHost);
      final List<UExpression> args = expressions.getValueArguments();
      if (args.size() == 1 + count) {
        boolean ok = true;
        for (int i = 1; i < count + 1; i++) {
          Object value = args.get(i).evaluate();
          if (value == null) {
            if (!(args.get(i) instanceof UReferenceExpression)) {
              ok = false;
              break;
            }
          }
        }
        if (ok) {
          UExpression receiver = expressions.getReceiver();
          PsiElement receiverSourcePsi = receiver != null ? receiver.getSourcePsi() : null;
          PsiElement elementToFold = null;
          if (receiverSourcePsi != null) {
            elementToFold = PsiTreeUtil.findCommonParent(callSourcePsi, receiverSourcePsi);
          }
          if (elementToFold == null) {
            elementToFold = callSourcePsi;
          }
          result.add(
            new FoldingDescriptor(Objects.requireNonNull(elementToFold.getNode()), elementToFold.getTextRange(), null,
                                  formatMethodCallExpression(expressions), isFoldingsOn(), set));
          if (property != null) {
            EditPropertyValueAction.registerFoldedElement(elementToFold, document);
          }
          return;
        }
      }
      else {
        return;
      }
    }
    result.add(new FoldingDescriptor(Objects.requireNonNull(sourcePsi.getNode()), sourcePsi.getTextRange(), null,
                                     getI18nMessage(injectionHost), isFoldingsOn(), set));
    if (property != null) {
      EditPropertyValueAction.registerFoldedElement(sourcePsi, document);
    }
  }
private static void checkLiteral(Document document,
                                   UInjectionHost injectionHost,
                                   List<? super FoldingDescriptor> result)