in src/util/spans.ts [105:126]
export function insertSpan(spans: Span[], newSpan: Span) {
if (!newSpan) {
throw new Error('could not insert span that is undefined/null');
}
for (let i = 0; i < spans.length; i += 1) {
const span = spans[i];
if (span.areBoundsEqual(newSpan)) {
return replaceSpan(spans, newSpan, i);
}
if (span.contains(newSpan.start)) {
if (newSpan.end === span.end) {
return insertSpanAtTail(spans, newSpan, i);
} else if (newSpan.end > span.end) {
return insertBridgingSpan(spans, newSpan, i);
}
return insertSplittingSpan(spans, newSpan, i);
}
}
log(`Could not insert span ${newSpan} into spanset ${spans}`);
return spans;
}