Enum rustc_borrowck::consumers::ConsumerOptions
source · pub enum ConsumerOptions {
RegionInferenceContext,
PoloniusInputFacts,
PoloniusOutputFacts,
}
Expand description
Options determining the output behavior of get_body_with_borrowck_facts
.
If executing under -Z polonius
the choice here has no effect, and everything as if
PoloniusOutputFacts
had been selected
will be retrieved.
Variants§
RegionInferenceContext
Retrieve the Body
along with the BorrowSet
and RegionInferenceContext
. If you would like the body only, use
TyCtxt::mir_promoted
.
These can be used in conjunction with calculate_borrows_out_of_scope_at_location
.
PoloniusInputFacts
The recommended option. Retrieves the maximal amount of information without significant slowdowns.
Implies RegionInferenceContext
,
and additionally retrieve the LocationTable
and PoloniusInput
that
would be given to Polonius. Critically, this does not run Polonius, which
one may want to avoid due to performance issues on large bodies.
PoloniusOutputFacts
Implies PoloniusInputFacts
,
and additionally runs Polonius to calculate the PoloniusOutput
.
Implementations§
source§impl ConsumerOptions
impl ConsumerOptions
sourcepub(crate) fn polonius_input(&self) -> bool
pub(crate) fn polonius_input(&self) -> bool
Should the Polonius input facts be computed?
sourcepub(crate) fn polonius_output(&self) -> bool
pub(crate) fn polonius_output(&self) -> bool
Should we run Polonius and collect the output facts?
Trait Implementations§
source§impl Clone for ConsumerOptions
impl Clone for ConsumerOptions
source§fn clone(&self) -> ConsumerOptions
fn clone(&self) -> ConsumerOptions
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ConsumerOptions
impl Debug for ConsumerOptions
impl Copy for ConsumerOptions
Auto Trait Implementations§
impl RefUnwindSafe for ConsumerOptions
impl Send for ConsumerOptions
impl Sync for ConsumerOptions
impl Unpin for ConsumerOptions
impl UnwindSafe for ConsumerOptions
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
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: 1 byte
Size for each variant:
RegionInferenceContext
: 0 bytesPoloniusInputFacts
: 0 bytesPoloniusOutputFacts
: 0 bytes