pub struct NullTracker {
pub status: HashMap<String, Nullability>,
pub alarms: Vec<String>,
}Expand description
Tracks nullability for program variables.
Fields§
§status: HashMap<String, Nullability>Nullability status per variable.
alarms: Vec<String>Variables that caused a null dereference alarm.
Implementations§
Source§impl NullTracker
impl NullTracker
Sourcepub fn declare_non_null(&mut self, var: impl Into<String>)
pub fn declare_non_null(&mut self, var: impl Into<String>)
Declare a variable as definitely non-null (e.g. just allocated).
Sourcepub fn declare_maybe_null(&mut self, var: impl Into<String>)
pub fn declare_maybe_null(&mut self, var: impl Into<String>)
Declare a variable as potentially null (e.g. result of nullable function).
Sourcepub fn declare_null(&mut self, var: impl Into<String>)
pub fn declare_null(&mut self, var: impl Into<String>)
Declare a variable as definitely null.
Sourcepub fn get(&self, var: &str) -> &Nullability
pub fn get(&self, var: &str) -> &Nullability
Get the nullability of a variable (defaults to MaybeNull if unknown).
Sourcepub fn dereference(&mut self, var: &str)
pub fn dereference(&mut self, var: &str)
Simulate a dereference: raises an alarm if var may be null.
Sourcepub fn join(&self, other: &NullTracker) -> NullTracker
pub fn join(&self, other: &NullTracker) -> NullTracker
Join two null-tracker states at a merge point.
Trait Implementations§
Source§impl Clone for NullTracker
impl Clone for NullTracker
Source§fn clone(&self) -> NullTracker
fn clone(&self) -> NullTracker
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for NullTracker
impl Debug for NullTracker
Source§impl Default for NullTracker
impl Default for NullTracker
Source§fn default() -> NullTracker
fn default() -> NullTracker
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for NullTracker
impl RefUnwindSafe for NullTracker
impl Send for NullTracker
impl Sync for NullTracker
impl Unpin for NullTracker
impl UnsafeUnpin for NullTracker
impl UnwindSafe for NullTracker
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