pub type PoloniusOutput = Output<RustcFacts>;
Aliased Type§
struct PoloniusOutput {Show 17 fields
pub errors: HashMap<LocationIndex, Vec<BorrowIndex>, BuildHasherDefault<FxHasher>>,
pub subset_errors: HashMap<LocationIndex, BTreeSet<(PoloniusRegionVid, PoloniusRegionVid)>, BuildHasherDefault<FxHasher>>,
pub move_errors: HashMap<LocationIndex, Vec<MovePathIndex>, BuildHasherDefault<FxHasher>>,
pub dump_enabled: bool,
pub loan_live_at: HashMap<LocationIndex, Vec<BorrowIndex>, BuildHasherDefault<FxHasher>>,
pub origin_contains_loan_at: HashMap<LocationIndex, BTreeMap<PoloniusRegionVid, BTreeSet<BorrowIndex>>, BuildHasherDefault<FxHasher>>,
pub origin_contains_loan_anywhere: HashMap<PoloniusRegionVid, BTreeSet<BorrowIndex>, BuildHasherDefault<FxHasher>>,
pub origin_live_on_entry: HashMap<LocationIndex, Vec<PoloniusRegionVid>, BuildHasherDefault<FxHasher>>,
pub loan_invalidated_at: HashMap<LocationIndex, Vec<BorrowIndex>, BuildHasherDefault<FxHasher>>,
pub subset: HashMap<LocationIndex, BTreeMap<PoloniusRegionVid, BTreeSet<PoloniusRegionVid>>, BuildHasherDefault<FxHasher>>,
pub subset_anywhere: HashMap<PoloniusRegionVid, BTreeSet<PoloniusRegionVid>, BuildHasherDefault<FxHasher>>,
pub var_live_on_entry: HashMap<LocationIndex, Vec<Local>, BuildHasherDefault<FxHasher>>,
pub var_drop_live_on_entry: HashMap<LocationIndex, Vec<Local>, BuildHasherDefault<FxHasher>>,
pub path_maybe_initialized_on_exit: HashMap<LocationIndex, Vec<MovePathIndex>, BuildHasherDefault<FxHasher>>,
pub path_maybe_uninitialized_on_exit: HashMap<LocationIndex, Vec<MovePathIndex>, BuildHasherDefault<FxHasher>>,
pub known_contains: HashMap<PoloniusRegionVid, BTreeSet<BorrowIndex>, BuildHasherDefault<FxHasher>>,
pub var_maybe_partly_initialized_on_exit: HashMap<LocationIndex, Vec<Local>, BuildHasherDefault<FxHasher>>,
}
Fields§
§errors: HashMap<LocationIndex, Vec<BorrowIndex>, BuildHasherDefault<FxHasher>>
§subset_errors: HashMap<LocationIndex, BTreeSet<(PoloniusRegionVid, PoloniusRegionVid)>, BuildHasherDefault<FxHasher>>
§move_errors: HashMap<LocationIndex, Vec<MovePathIndex>, BuildHasherDefault<FxHasher>>
§dump_enabled: bool
§loan_live_at: HashMap<LocationIndex, Vec<BorrowIndex>, BuildHasherDefault<FxHasher>>
§origin_contains_loan_at: HashMap<LocationIndex, BTreeMap<PoloniusRegionVid, BTreeSet<BorrowIndex>>, BuildHasherDefault<FxHasher>>
§origin_contains_loan_anywhere: HashMap<PoloniusRegionVid, BTreeSet<BorrowIndex>, BuildHasherDefault<FxHasher>>
§origin_live_on_entry: HashMap<LocationIndex, Vec<PoloniusRegionVid>, BuildHasherDefault<FxHasher>>
§loan_invalidated_at: HashMap<LocationIndex, Vec<BorrowIndex>, BuildHasherDefault<FxHasher>>
§subset: HashMap<LocationIndex, BTreeMap<PoloniusRegionVid, BTreeSet<PoloniusRegionVid>>, BuildHasherDefault<FxHasher>>
§subset_anywhere: HashMap<PoloniusRegionVid, BTreeSet<PoloniusRegionVid>, BuildHasherDefault<FxHasher>>
§var_live_on_entry: HashMap<LocationIndex, Vec<Local>, BuildHasherDefault<FxHasher>>
§var_drop_live_on_entry: HashMap<LocationIndex, Vec<Local>, BuildHasherDefault<FxHasher>>
§path_maybe_initialized_on_exit: HashMap<LocationIndex, Vec<MovePathIndex>, BuildHasherDefault<FxHasher>>
§path_maybe_uninitialized_on_exit: HashMap<LocationIndex, Vec<MovePathIndex>, BuildHasherDefault<FxHasher>>
§known_contains: HashMap<PoloniusRegionVid, BTreeSet<BorrowIndex>, BuildHasherDefault<FxHasher>>
§var_maybe_partly_initialized_on_exit: HashMap<LocationIndex, Vec<Local>, BuildHasherDefault<FxHasher>>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 520 bytes
Implementations
Source§impl<T> Output<T>where
T: FactTypes,
impl<T> Output<T>where
T: FactTypes,
Sourcepub fn compute(
all_facts: &AllFacts<T>,
algorithm: Algorithm,
dump_enabled: bool,
) -> Output<T>
pub fn compute( all_facts: &AllFacts<T>, algorithm: Algorithm, dump_enabled: bool, ) -> Output<T>
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