Enum flowistry_pdg::rustc::mir::visit::NonMutatingUseContext
source · pub enum NonMutatingUseContext {
Inspect,
Copy,
Move,
SharedBorrow,
ShallowBorrow,
AddressOf,
PlaceMention,
Projection,
}
Variants§
Inspect
Being inspected in some way, like loading a len.
Copy
Consumed as part of an operand.
Move
Consumed as part of an operand.
Shared borrow.
ShallowBorrow
Shallow borrow.
AddressOf
AddressOf for *const pointer.
PlaceMention
PlaceMention statement.
This statement is executed as a check that the Place
is live without reading from it,
so it must be considered as a non-mutating use.
Projection
Used as base for another place, e.g., x
in x.y
. Will not mutate the place.
For example, the projection x.y
is not marked as a mutation in these cases:
ⓘ
z = x.y;
f(&x.y);
Auto Trait Implementations§
impl RefUnwindSafe for NonMutatingUseContext
impl Send for NonMutatingUseContext
impl Sync for NonMutatingUseContext
impl Unpin for NonMutatingUseContext
impl UnwindSafe for NonMutatingUseContext
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