private static boolean isInNonNlsCallChain(@NotNull UExpression expression,
                                             final Set<? super PsiModifierListOwner> nonNlsTargets) {
    UExpression parent = UastUtils.skipParenthesizedExprDown(JavaI18nUtil.getTopLevelExpression(expression, true));
    if (parent instanceof UResolvable && isNonNlsCall((UResolvable)parent, nonNlsTargets)) {
      return true;
    }
    if (UastExpressionUtils.isAssignment(parent)) {
      UExpression operand = ((UBinaryExpression)parent).getLeftOperand();
      if (operand instanceof UReferenceExpression &&
          isNonNlsCall((UReferenceExpression)operand, nonNlsTargets)) return true;
    }
    if (parent instanceof UCallExpression) {
      UElement parentOfNew = UastUtils.skipParenthesizedExprUp(parent.getUastParent());
      if (parentOfNew instanceof ULocalVariable newVariable) {
        if (annotatedAsNonNls(newVariable.getPsi())) {
          return true;
        }
        PsiElement variableJavaPsi = newVariable.getJavaPsi();
        if (variableJavaPsi instanceof PsiModifierListOwner) {
          nonNlsTargets.add(((PsiModifierListOwner)variableJavaPsi));
        }
        return false;
      }
    }

    return false;
  }
private static boolean isInNonNlsCallChain(@NotNull UExpression expression,
                                             final Set<? super PsiModifierListOwner> nonNlsTargets)