////////////////////////////////////////////////////////////////////////// // 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(']'); }