toString method

  1. @override
String toString()
override

A string representation of this object.

Some classes have a default textual representation, often paired with a static parse function (like int.parse). These classes will provide the textual representation as their string representation.

Other classes have no meaningful textual representation that a program will care about. Such classes will typically override toString to provide useful information when inspecting the object, mainly for debugging or logging.

Implementation

@override
String toString() {
  // avoid circular references
  final existing = _buffers[this];
  if (existing != null) {
    return 'BuildTree#$hashCode (circular)';
  }

  final sb = _buffers[this] = StringBuffer();
  sb.writeln('BuildTree#$hashCode $inheritanceResolvers:');

  const indent = '  ';
  for (final child in children) {
    sb.write('$indent${child.toString().replaceAll('\n', '\n$indent')}\n');
  }

  final str = sb.toString().trimRight();
  _buffers[this] = null;

  return str;
}