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.');
}