pub enum Reason {
Distinct,
Escape,
Offset,
Tbaa,
Restrict,
Attribute,
}Expand description
Which rule concluded that two references cannot touch the same byte.
Section 8.5. This is the whole point of the return type being an enum rather than a boolean.
Variants§
Distinct
They are references to two different objects, which is layers 1 and 2 together.
Escape
One is a local whose address never leaves the function and the other is not that local.
Offset
They are references to one object at offsets whose byte ranges do not overlap.
Tbaa
Their type nodes are in different parts of the tree, so no object has both types.
Restrict
They are in one restrict scope through different restrict pointers.
Attribute
The callee’s attributes say it does not touch memory this way.
Implementations§
Trait Implementations§
impl Copy for Reason
impl Eq for Reason
impl StructuralPartialEq for Reason
Auto Trait Implementations§
impl Freeze for Reason
impl RefUnwindSafe for Reason
impl Send for Reason
impl Sync for Reason
impl Unpin for Reason
impl UnsafeUnpin for Reason
impl UnwindSafe for Reason
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