JsonArray dimList = new JsonArray(sourceInfo,
program.getJavaScriptObject());
JType cur = arrayType;
for (int i = 0; i < dims; ++i) {
// Walk down each type from most dims to least.
JArrayType curArrayType = (JArrayType) cur;
JLiteral classLit = x.getClassLiterals().get(i);
classLitList.exprs.add(classLit);
JsonObject castableTypeMap = program.getCastableTypeMap(curArrayType);
castableTypeMapList.exprs.add(castableTypeMap);
JLiteral queryIdLit = program.getLiteralInt(tryGetQueryId(curArrayType));
queryIdList.exprs.add(queryIdLit);
dimList.exprs.add(x.dims.get(i));
cur = curArrayType.getElementType();
}
call.addArgs(classLitList, castableTypeMapList, queryIdList,
dimList, program.getLiteralInt(dims), getSeedTypeLiteralFor(cur));
ctx.replaceMe(call);
}