toString method
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() {
// Figure out the longest path so we know how much to pad.
var longest =
frames.map((frame) => frame.location.length).fold(0, math.max);
// Print out the stack trace nicely formatted.
return frames.map((frame) {
if (frame is UnparsedFrame) return '$frame\n';
return '${frame.location.padRight(longest)} ${frame.member}\n';
}).join();
}