recursiveToString static method

String? recursiveToString(
  1. Set<Object>? processedObjects,
  2. Object? o,
  3. String? str()
)

Implementation

static String? recursiveToString(
    Set<Object>? processedObjects, Object? o, String? Function() str) {
  processedObjects ??= _processedObjectsStack.lastOrNull;

  processedObjects = RecursiveToString.processedObjects(processedObjects, o);
  if (processedObjects == null) {
    return o is RecursiveToString
        ? o.toStringSimple()
        : '(${o.runtimeType})...';
  }

  _processedObjectsStack.addLast(processedObjects);
  try {
    return str();
  } finally {
    var rm = _processedObjectsStack.removeLast();
    assert(identical(rm, processedObjects));
  }
}