pub enum PathEnum {
Show 14 variants
LocalVariable {
func_id: FuncId,
ordinal: usize,
},
Parameter {
func_id: FuncId,
ordinal: usize,
},
ReturnValue {
func_id: FuncId,
},
Auxiliary {
func_id: FuncId,
ordinal: usize,
},
HeapObj {
func_id: FuncId,
location: Location,
},
Constant,
StaticVariable {
def_id: DefId,
},
PromotedConstant {
def_id: DefId,
ordinal: usize,
},
QualifiedPath {
base: Rc<Path>,
projection: ProjectionElems,
},
OffsetPath {
base: Rc<Path>,
offset: usize,
},
Function(FuncId),
PromotedStrRefArray,
PromotedArgumentV1Array,
Type(usize),
}Expand description
Different kinds of Path used in our analysis.
Variants§
LocalVariable
Locals [arg_count+1..] are the local variables and compiler temporaries.
Parameter
Locals [1..=arg_count] are the parameters
ReturnValue
Local 0 is the return value temporary
Auxiliary
Auxiliary local variable created when running pointer analysis
HeapObj
A dynamically allocated memory object.
Constant
This path points to data that is not used, but exists only to satisfy a static checker that a generic parameter is actually used.
StaticVariable
PromotedConstant
The ordinal is an index into a method level table of MIR bodies.
QualifiedPath
The base denotes some struct, collection or heap_obj. projection: a non-empty list of projections
OffsetPath
Function(FuncId)
A function instance which can be pointed to by a function pointer.
PromotedStrRefArray
PromotedArgumentV1Array
Type(usize)
A type instance uniquely identified by the type’s index in type cache
Trait Implementations§
source§impl PartialEq for PathEnum
impl PartialEq for PathEnum
impl Eq for PathEnum
impl StructuralPartialEq for PathEnum
Auto Trait Implementations§
impl RefUnwindSafe for PathEnum
impl !Send for PathEnum
impl !Sync for PathEnum
impl Unpin for PathEnum
impl UnwindSafe for PathEnum
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.