abs_domain 🔒
The move-analysis portion of borrowck needs to work in an abstract domain of lifted Places. Most of the Place variants fall into a one-to-one mapping between the concrete and abstract (e.g., a field-deref on a local variable, x.field, has the same meaning in both domains). Indexed projections are the exception: a[x] needs to be treated as mapping to the same move path as a[y] as well as a[13], etc.
builder 🔒


Init represents a point in a program that initializes some L-value;
MoveOut represents a point in a program that moves out of some L-value; i.e., “creates” uninitialized memory.
MovePath is a canonicalized representation of a path that is moved or assigned to.
Tables mapping from a place to its MovePathIndex.


Additional information about the initialization.
Initializations can be from an argument or from a statement. Arguments do not have locations, in those cases the Local is kept..