pub struct OutlivesSuggestionBuilder {
constraints_to_add: BTreeMap<RegionVid, Vec<RegionVid>>,
}
Expand description
Collects information about outlives constraints that needed to be added for a given MIR node corresponding to a function definition.
Adds a help note suggesting adding a where clause with the needed constraints.
Fields§
§constraints_to_add: BTreeMap<RegionVid, Vec<RegionVid>>
The list of outlives constraints that need to be added. Specifically, we map each free
region to all other regions that it must outlive. I will use the shorthand fr: outlived_frs
. Not all of these regions will already have names necessarily. Some could be
implicit free regions that we inferred. These will need to be given names in the final
suggestion message.
Implementations§
source§impl OutlivesSuggestionBuilder
impl OutlivesSuggestionBuilder
sourcefn region_name_is_suggestable(name: &RegionName) -> bool
fn region_name_is_suggestable(name: &RegionName) -> bool
Returns true
iff the RegionNameSource
is a valid source for an outlives
suggestion.
sourcefn region_vid_to_name(
&self,
mbcx: &MirBorrowckCtxt<'_, '_>,
region: RegionVid
) -> Option<RegionName>
fn region_vid_to_name( &self, mbcx: &MirBorrowckCtxt<'_, '_>, region: RegionVid ) -> Option<RegionName>
Returns a name for the region if it is suggestable. See region_name_is_suggestable
.
sourcefn compile_all_suggestions(
&self,
mbcx: &MirBorrowckCtxt<'_, '_>
) -> SmallVec<[SuggestedConstraint; 2]>
fn compile_all_suggestions( &self, mbcx: &MirBorrowckCtxt<'_, '_> ) -> SmallVec<[SuggestedConstraint; 2]>
Compiles a list of all suggestions to be printed in the final big suggestion.
sourcepub(crate) fn collect_constraint(
&mut self,
fr: RegionVid,
outlived_fr: RegionVid
)
pub(crate) fn collect_constraint( &mut self, fr: RegionVid, outlived_fr: RegionVid )
Add the outlives constraint fr: outlived_fr
to the set of constraints we need to suggest.
sourcepub(crate) fn intermediate_suggestion(
&mut self,
mbcx: &MirBorrowckCtxt<'_, '_>,
errci: &ErrorConstraintInfo<'_>,
diag: &mut Diagnostic
)
pub(crate) fn intermediate_suggestion( &mut self, mbcx: &MirBorrowckCtxt<'_, '_>, errci: &ErrorConstraintInfo<'_>, diag: &mut Diagnostic )
Emit an intermediate note on the given Diagnostic
if the involved regions are
suggestable.
sourcepub(crate) fn add_suggestion(&self, mbcx: &mut MirBorrowckCtxt<'_, '_>)
pub(crate) fn add_suggestion(&self, mbcx: &mut MirBorrowckCtxt<'_, '_>)
If there is a suggestion to emit, add a diagnostic to the buffer. This is the final suggestion including all collected constraints.
Trait Implementations§
source§impl Default for OutlivesSuggestionBuilder
impl Default for OutlivesSuggestionBuilder
source§fn default() -> OutlivesSuggestionBuilder
fn default() -> OutlivesSuggestionBuilder
Auto Trait Implementations§
impl RefUnwindSafe for OutlivesSuggestionBuilder
impl Send for OutlivesSuggestionBuilder
impl Sync for OutlivesSuggestionBuilder
impl Unpin for OutlivesSuggestionBuilder
impl UnwindSafe for OutlivesSuggestionBuilder
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: 24 bytes