Module rustc_mir::dataflow::move_paths::abs_domain [−][src]
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
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]
, et cetera.
(In theory the analysis could be extended to work with sets of
paths, so that a[0]
and a[13]
could be kept distinct, while
a[x]
would still overlap them both. But that is not this
representation does today.)
Re-exports
use rustc::mir::Local; |
use rustc::mir::PlaceElem; |
use rustc::mir::Operand; |
use rustc::mir::ProjectionElem; |
use rustc::ty::Ty; |
Structs
AbstractOperand |
[ Experimental ]
|
AbstractType |
[ Experimental ]
|
Traits
Lift |
[ Experimental ]
|
Type Definitions
AbstractElem |
[ Experimental ]
|