Types for tracking pieces of source code within a crate.
SourceMap tracks all the source code used within a single crate, mapping
from integer byte positions to the original source code location. Each bit
of source parsed during crate parsing (typically files, in-memory strings,
or various bits of macro expansion) cover a continuous range of bytes in the
SourceMap and are represented by
SourceFiles. Byte positions are stored in
Span and used pervasively in the compiler. They are absolute positions
SourceMap, which upon request can be converted to line and column
information, source code snippets, etc.