toString method Null safety
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 = traces.map((trace) {
return trace.frames
.map((frame) => frame.location.length)
.fold(0, math.max);
}).fold(0, math.max);
// Don't call out to [Trace.toString] here because that doesn't ensure that
// padding is consistent across all traces.
return traces.map((trace) {
return trace.frames.map((frame) {
return '${frame.location.padRight(longest)} ${frame.member}\n';
}).join();
}).join(chainGap);
}