enum Phase<'a> {
First,
Second(&'a mut Match),
}Expand description
Which phase of matching we’re currently performing. We do two phases because most attempted matches will fail and it means we can defer more expensive checks to the second phase.
Variants§
First
On the first phase, we perform cheap checks. No state is mutated and nothing is recorded.
Second(&'a mut Match)
On the second phase, we construct the Match. Things like what placeholders bind to is
recorded.
Implementations§
Source§impl Phase<'_>
impl Phase<'_>
fn next_non_trivial( &mut self, code_it: &mut SyntaxElementChildren, ) -> Option<SyntaxElement>
fn record_ignored_comments(&mut self, token: &SyntaxToken)
Auto Trait Implementations§
impl<'a> Freeze for Phase<'a>
impl<'a> !RefUnwindSafe for Phase<'a>
impl<'a> !Send for Phase<'a>
impl<'a> !Sync for Phase<'a>
impl<'a> Unpin for Phase<'a>
impl<'a> UnsafeUnpin for Phase<'a>
impl<'a> !UnwindSafe for Phase<'a>
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
Mutably borrows from an owned value. Read more
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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