pub trait AbstractDomain: Sized + Eq + Clone {
// Required methods
fn merge(&self, other: &Self) -> Self;
fn is_top(&self) -> bool;
// Provided method
fn merge_with(&mut self, other: &Self) -> &mut Self { ... }
}Expand description
The main trait describing an abstract domain.
Each abstract domain is partially ordered. Abstract domains of the same type can be merged.
Required Methods§
Provided Methods§
sourcefn merge_with(&mut self, other: &Self) -> &mut Self
fn merge_with(&mut self, other: &Self) -> &mut Self
Returns an upper bound (with respect to the partial order on the domain)
for the two inputs self and other.
Modifies self in-place to hold the result. This can be useful in
situations where it is not necessary to create a new object and more
efficient to modify an existing one in-place.
Default
Calls AbstractDomain::merge on the inputs and overwrites self with
the result. Does nothing when self is equal to other.
Object Safety§
This trait is not object safe.