pub struct Output<T: FactTypes> {Show 17 fields
pub errors: FxHashMap<T::Point, Vec<T::Loan>>,
pub subset_errors: FxHashMap<T::Point, BTreeSet<(T::Origin, T::Origin)>>,
pub move_errors: FxHashMap<T::Point, Vec<T::Path>>,
pub dump_enabled: bool,
pub loan_live_at: FxHashMap<T::Point, Vec<T::Loan>>,
pub origin_contains_loan_at: FxHashMap<T::Point, BTreeMap<T::Origin, BTreeSet<T::Loan>>>,
pub origin_contains_loan_anywhere: FxHashMap<T::Origin, BTreeSet<T::Loan>>,
pub origin_live_on_entry: FxHashMap<T::Point, Vec<T::Origin>>,
pub loan_invalidated_at: FxHashMap<T::Point, Vec<T::Loan>>,
pub subset: FxHashMap<T::Point, BTreeMap<T::Origin, BTreeSet<T::Origin>>>,
pub subset_anywhere: FxHashMap<T::Origin, BTreeSet<T::Origin>>,
pub var_live_on_entry: FxHashMap<T::Point, Vec<T::Variable>>,
pub var_drop_live_on_entry: FxHashMap<T::Point, Vec<T::Variable>>,
pub path_maybe_initialized_on_exit: FxHashMap<T::Point, Vec<T::Path>>,
pub path_maybe_uninitialized_on_exit: FxHashMap<T::Point, Vec<T::Path>>,
pub known_contains: FxHashMap<T::Origin, BTreeSet<T::Loan>>,
pub var_maybe_partly_initialized_on_exit: FxHashMap<T::Point, Vec<T::Variable>>,
}
Fields§
§errors: FxHashMap<T::Point, Vec<T::Loan>>
§subset_errors: FxHashMap<T::Point, BTreeSet<(T::Origin, T::Origin)>>
§move_errors: FxHashMap<T::Point, Vec<T::Path>>
§dump_enabled: bool
§loan_live_at: FxHashMap<T::Point, Vec<T::Loan>>
§origin_contains_loan_at: FxHashMap<T::Point, BTreeMap<T::Origin, BTreeSet<T::Loan>>>
§origin_contains_loan_anywhere: FxHashMap<T::Origin, BTreeSet<T::Loan>>
§origin_live_on_entry: FxHashMap<T::Point, Vec<T::Origin>>
§loan_invalidated_at: FxHashMap<T::Point, Vec<T::Loan>>
§subset: FxHashMap<T::Point, BTreeMap<T::Origin, BTreeSet<T::Origin>>>
§subset_anywhere: FxHashMap<T::Origin, BTreeSet<T::Origin>>
§var_live_on_entry: FxHashMap<T::Point, Vec<T::Variable>>
§var_drop_live_on_entry: FxHashMap<T::Point, Vec<T::Variable>>
§path_maybe_initialized_on_exit: FxHashMap<T::Point, Vec<T::Path>>
§path_maybe_uninitialized_on_exit: FxHashMap<T::Point, Vec<T::Path>>
§known_contains: FxHashMap<T::Origin, BTreeSet<T::Loan>>
§var_maybe_partly_initialized_on_exit: FxHashMap<T::Point, Vec<T::Variable>>
Implementations§
Source§impl<T: FactTypes> Output<T>
impl<T: FactTypes> Output<T>
Sourcepub fn compute(
all_facts: &AllFacts<T>,
algorithm: Algorithm,
dump_enabled: bool,
) -> Self
pub fn compute( all_facts: &AllFacts<T>, algorithm: Algorithm, dump_enabled: bool, ) -> Self
All variants require the same initial preparations, done in multiple successive steps:
- compute initialization data
- compute liveness
- prepare static inputs as shared
Relation
s - in cases where
LocationInsensitive
variant is ran as a filtering pre-pass, partial results can also be stored in the context, so that the following variant can use it to prune its own input data
pub fn errors_at(&self, location: T::Point) -> &[T::Loan]
pub fn loans_in_scope_at(&self, location: T::Point) -> &[T::Loan]
pub fn origin_contains_loan_at( &self, location: T::Point, ) -> Cow<'_, BTreeMap<T::Origin, BTreeSet<T::Loan>>>
pub fn origins_live_at(&self, location: T::Point) -> &[T::Origin]
pub fn subsets_at( &self, location: T::Point, ) -> Cow<'_, BTreeMap<T::Origin, BTreeSet<T::Origin>>>
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Output<T>
impl<T> RefUnwindSafe for Output<T>where
<T as FactTypes>::Point: RefUnwindSafe,
<T as FactTypes>::Origin: RefUnwindSafe,
<T as FactTypes>::Loan: RefUnwindSafe,
<T as FactTypes>::Path: RefUnwindSafe,
<T as FactTypes>::Variable: RefUnwindSafe,
impl<T> Send for Output<T>
impl<T> Sync for Output<T>
impl<T> Unpin for Output<T>
impl<T> UnwindSafe for Output<T>where
<T as FactTypes>::Point: UnwindSafe,
<T as FactTypes>::Origin: UnwindSafe + RefUnwindSafe,
<T as FactTypes>::Loan: RefUnwindSafe + UnwindSafe,
<T as FactTypes>::Path: UnwindSafe,
<T as FactTypes>::Variable: UnwindSafe,
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