private static void formatType(LighterAST tree, LighterASTNode typeElement, StringBuilder buf) {
    for (LighterASTNode node : tree.getChildren(typeElement)) {
      final IElementType tokenType = node.getTokenType();
      if (tokenType == JavaElementType.JAVA_CODE_REFERENCE) {
        formatCodeReference(tree, node, buf);
      }
      else if (tokenType == JavaElementType.TYPE) {
        formatType(tree, node, buf);
      }
      else if (tokenType == JavaTokenType.QUEST) {
        buf.append("? ");
      }
      else if (ElementType.KEYWORD_BIT_SET.contains(tokenType)) {
        buf.append(RecordUtil.intern(tree.getCharTable(), node));
        if (!ElementType.PRIMITIVE_TYPE_BIT_SET.contains(tokenType)) {
          buf.append(" ");
        }
      }
      else if (tokenType == JavaTokenType.ELLIPSIS) {
        buf.append("...");
      }
      else if (tokenType == JavaTokenType.RBRACKET) {
        buf.append("]");
      }
      else if (tokenType == JavaTokenType.LBRACKET) {
        buf.append("[");
      }
    }
  }
private static void formatType(LighterAST tree, LighterASTNode typeElement, StringBuilder buf)