pub(crate) enum BorrowExplanation {
UsedLater(LaterUseKind, Span, Option<Span>),
UsedLaterInLoop(LaterUseKind, Span, Option<Span>),
UsedLaterWhenDropped {
drop_loc: Location,
dropped_local: Local,
should_note_order: bool,
},
MustBeValidFor {
category: ConstraintCategory,
from_closure: bool,
span: Span,
region_name: RegionName,
opt_place_desc: Option<String>,
},
Unexplained,
}Variants
UsedLater(LaterUseKind, Span, Option<Span>)
UsedLaterInLoop(LaterUseKind, Span, Option<Span>)
UsedLaterWhenDropped
MustBeValidFor
Unexplained
Implementations
sourceimpl BorrowExplanation
impl BorrowExplanation
pub(crate) fn is_explained(&self) -> bool
pub(crate) fn add_explanation_to_diagnostic<'tcx>(
&self,
tcx: TyCtxt<'tcx>,
body: &Body<'tcx>,
local_names: &IndexVec<Local, Option<Symbol>>,
err: &mut DiagnosticBuilder<'_>,
borrow_desc: &str,
borrow_span: Option<Span>,
multiple_borrow_span: Option<(Span, Span)>
)
pub(crate) fn add_lifetime_bound_suggestion_to_diagnostic(
&self,
err: &mut DiagnosticBuilder<'_>,
category: &ConstraintCategory,
span: Span,
region_name: &RegionName
)
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for BorrowExplanation
impl !Send for BorrowExplanation
impl !Sync for BorrowExplanation
impl Unpin for BorrowExplanation
impl UnwindSafe for BorrowExplanation
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
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: 128 bytes
Size for each variant:
UsedLater: 23 bytesUsedLaterInLoop: 23 bytesUsedLaterWhenDropped: 23 bytesMustBeValidFor: 127 bytesUnexplained: 0 bytes