static markUsed(segment) {
		if (segment.internal.used) {
			return;
		}
		segment.internal.used = true;

		let i;

		if (segment.reachable) {
			/*
			 * If the segment is reachable, then it's officially part of the
			 * code path. This loops through all previous segments to update
			 * their list of next segments. Because the segment is reachable,
			 * it's added to both `nextSegments` and `allNextSegments`.
			 */
			for (i = 0; i < segment.allPrevSegments.length; ++i) {
				const prevSegment = segment.allPrevSegments[i];

				prevSegment.allNextSegments.push(segment);
				prevSegment.nextSegments.push(segment);
			}
		} else {
			/*
			 * If the segment is not reachable, then it's not officially part of the
			 * code path. This loops through all previous segments to update
			 * their list of next segments. Because the segment is not reachable,
			 * it's added only to `allNextSegments`.
			 */
			for (i = 0; i < segment.allPrevSegments.length; ++i) {
				segment.allPrevSegments[i].allNextSegments.push(segment);
			}
		}
	}
Marks a given segment as used.

And this function registers the segment into the previous segments as a next.
@param {CodePathSegment} segment A segment to mark.
@returns {void}