function display()

in lib/semantic.js [36:87]


function display(item) {
  if (item.type === 'basic') {
    return item.name;
  }

  if (item.type === 'map') {
    return `map[${display(item.keyType)}]${display(item.valueType)}`;
  }

  if (item.type === 'entry') {
    return `entry[${display(item.valueType)}]`;
  }

  if (item.type === 'array') {
    return `[${display(item.itemType)}]`;
  }

  if (item.type === 'model') {
    if (item.moduleName) {
      return `${item.moduleName}#${item.name}`;
    }

    return item.name;
  }

  if (item.type === 'class') {
    if (item.moduleName) {
      return `[${item.moduleName}#${item.name}]`;
    }

    return `[${item.name}]`;
  }

  if (item.type === 'module_instance') {
    return item.name;
  }

  if (item.type === 'enum') {
    return item.name;
  }

  if (item.type === 'typedef') {
    return item.name;
  }

  if (item.type === 'asyncIterator' || item.type === 'iterator') {
    return `${item.type}[${display(item.valueType)}]`;
  }

  console.log(item);
  throw new Error('unimplemented.');
}