From 032fdef3befba19c80d2ec6d59f9309bbc359e68 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 18 Sep 2017 11:35:47 -0400 Subject: [PATCH] define span --- src/librustc/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/librustc/README.md b/src/librustc/README.md index e72acb43fba5..48bc9f91619e 100644 --- a/src/librustc/README.md +++ b/src/librustc/README.md @@ -187,6 +187,12 @@ pointers for understanding them better. - sess -- the **compiler session**, which stores global data used throughout compilation - side tables -- because the AST and HIR are immutable once created, we often carry extra information about them in the form of hashtables, indexed by the id of a particular node. +- span -- a location in the user's source code, used for error + reporting primarily. These are like a file-name/line-number/column + tuple on steroids: they carry a start/end point, and also track + macro expansions and compiler desugaring. All while being packed + into a few bytes (really, it's an index into a table). See the + `Span` datatype for more. - substs -- the **substitutions** for a given generic type or item (e.g., the `i32, u32` in `HashMap`) - tcx -- the "typing context", main data structure of the compiler (see `librustc/ty`).