pub struct CppRecoveryCapture { /* private fields */ }Expand description
What one open CppVisitor::record_recovered_declarations has watched
happen to the declaration set.
The recovered set used to be a difference against a clone of the whole declaration set, taken once per recovery: O(recoveries x declarations) on exactly the error-recovered files that already walk slowest (#2787). The walk knows which declarations it creates, so the capture collects them as they are made and the difference is never needed.
removed_pre_existing is what makes that equal to the difference. A
deferred replacement removes the replaced declaration’s children
(ParsedFile::prepare_deferred_replacement), and the reparse walk then
re-creates them. Creation alone cannot tell that apart from a first mint, so
a removal of a declaration this capture did not create records that it was
already there when the capture opened.
Trait Implementations§
Source§impl Debug for CppRecoveryCapture
impl Debug for CppRecoveryCapture
Source§impl Default for CppRecoveryCapture
impl Default for CppRecoveryCapture
Source§fn default() -> CppRecoveryCapture
fn default() -> CppRecoveryCapture
Auto Trait Implementations§
impl Freeze for CppRecoveryCapture
impl RefUnwindSafe for CppRecoveryCapture
impl Send for CppRecoveryCapture
impl Sync for CppRecoveryCapture
impl Unpin for CppRecoveryCapture
impl UnsafeUnpin for CppRecoveryCapture
impl UnwindSafe for CppRecoveryCapture
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more