otNull
  static HtmlChunk describeDecorators(@NotNull PyDecoratable decoratable,
                                      @NotNull HtmlChunk separator) {
    final HtmlBuilder result = new HtmlBuilder();
    final PyDecoratorList decoratorList = decoratable.getDecoratorList();
    if (decoratorList != null) {
      boolean first = true;

      for (PyDecorator decorator : decoratorList.getDecorators()) {
        if (!first) {
          result.append(separator);
        }
        result.appendRaw(describeDecorator(decorator).toString());
        first = false;
      }
    }
    if (!result.isEmpty()) {
      result.br();
    }
    return result.toFragment();
  }


otNull
  static HtmlChunk describeDecorators(@NotNull PyDecoratable decoratable,
                                      @NotNull HtmlChunk separator) {