static int cSmartSet_withConverter_pcall(bool verbose default false, Concept c, O... values) { ret cSmartSet_withConverter_pcall(verbose, new DefaultValueConverterForField, c, values); } // returns number of changes static int cSmartSet_withConverter_pcall(bool verbose default false, ValueConverterForField converter, Concept c, O... values) ctex { if (c == null) ret 0; warnIfOddCount(values = unrollAndExpandParams(c.getClass(), values)); int changes = 0; for (int i = 0; i+1 < l(values); i += 2) pcall { if (cSmartSetField_withConverter(c, (S) values[i], values[i+1], converter, verbose)) ++changes; } ret changes; }