pub struct SpanlessEq<'a, 'tcx> { /* private fields */ }
Expand description
Type used to check whether two ast are the same. This is different from the
operator ==
on ast types as this operator would compare true equality with
ID and span.
Note that some expressions kinds are not considered but could be added.
Implementations§
Source§impl<'a, 'tcx> SpanlessEq<'a, 'tcx>
impl<'a, 'tcx> SpanlessEq<'a, 'tcx>
pub fn new(cx: &'a LateContext<'tcx>) -> Self
Sourcepub fn deny_side_effects(self) -> Self
pub fn deny_side_effects(self) -> Self
Consider expressions containing potential side effects as not equal.
Sourcepub fn paths_by_resolution(self) -> Self
pub fn paths_by_resolution(self) -> Self
Check paths by their resolution instead of exact equality. See [PathCheck
] for more
details.
pub fn expr_fallback( self, expr_fallback: impl FnMut(&Expr<'_>, &Expr<'_>) -> bool + 'a, ) -> Self
Sourcepub fn inter_expr(&mut self) -> HirEqInterExpr<'_, 'a, 'tcx>
pub fn inter_expr(&mut self) -> HirEqInterExpr<'_, 'a, 'tcx>
Use this method to wrap comparisons that may involve inter-expression context.
See self.locals
.
pub fn eq_block(&mut self, left: &Block<'_>, right: &Block<'_>) -> bool
pub fn eq_expr(&mut self, left: &Expr<'_>, right: &Expr<'_>) -> bool
pub fn eq_path(&mut self, left: &Path<'_>, right: &Path<'_>) -> bool
pub fn eq_path_segment( &mut self, left: &PathSegment<'_>, right: &PathSegment<'_>, ) -> bool
pub fn eq_path_segments( &mut self, left: &[PathSegment<'_>], right: &[PathSegment<'_>], ) -> bool
pub fn eq_modifiers( left: TraitBoundModifiers, right: TraitBoundModifiers, ) -> bool
Auto Trait Implementations§
impl<'a, 'tcx> Freeze for SpanlessEq<'a, 'tcx>
impl<'a, 'tcx> !RefUnwindSafe for SpanlessEq<'a, 'tcx>
impl<'a, 'tcx> !Send for SpanlessEq<'a, 'tcx>
impl<'a, 'tcx> !Sync for SpanlessEq<'a, 'tcx>
impl<'a, 'tcx> Unpin for SpanlessEq<'a, 'tcx>
impl<'a, 'tcx> !UnwindSafe for SpanlessEq<'a, 'tcx>
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
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