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() {
  String describeExisting;
  try {
    String? n;
    SourceLocation? loc;

    final r1 = reflect(existingHandler);
    if (r1 is ClosureMirror) {
      loc = r1.function.location;
      n = MirrorSystem.getName(r1.function.qualifiedName);
      if (n.startsWith('.')) {
        n = n.substring(1); // remove leading '.'
      }
    }

    describeExisting = ' already handled by $n ($loc)';
    // ignore: avoid_catching_errors
  } on UnsupportedError {
    // No location information to report
    describeExisting = '';
  }

  return super.toString() + describeExisting;
}