Modules§
- The move-analysis portion of borrowck needs to work in an abstract domain of lifted
Place
s. Most of thePlace
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 asa[y]
as well asa[13]
, etc. So we map thesex
/y
values to()
. - builder 🔒
Structs§
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.
Enums§
- 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..