//////////////////////////////////////////////////////////////////////////
// List
//////////////////////////////////////////////////////////////////////////
public void writeList(List list)
{
// get of type
Type of = list.of();
// decide if we're going output as single or multi-line format
bool nl = isMultiLine(of);
// figure out if we can use an inferred type
bool inferred = false;
if (curFieldType != null && curFieldType.fits(Sys.ListType))
{
inferred = true;
}
// clear field type, so it doesn't get used for inference again
curFieldType = null;
// if we don't have an inferred type, then prefix of type
if (!inferred) wType(of);
// handle empty list
int size = list.sz();
if (size == 0) { w("[,]"); return; }
// items
if (nl) w('\n').wIndent();
w('[');
level++;
for (int i=0; i<size; ++i)
{
if (i > 0) w(',');
if (nl) w('\n').wIndent();
writeObj(list.get(i));
}
level--;
if (nl) w('\n').wIndent();
w(']');
}