pub enum ExprUseNode<'tcx> {
LetStmt(&'tcx LetStmt<'tcx>),
ConstStatic(OwnerId),
Return(OwnerId),
Field(&'tcx ExprField<'tcx>),
FnArg(&'tcx Expr<'tcx>, usize),
MethodArg(HirId, Option<&'tcx GenericArgs<'tcx>>, usize),
Callee,
FieldAccess(Ident),
AddrOf(BorrowKind, Mutability),
Other,
}Expand description
The node which consumes a value.
Variants§
LetStmt(&'tcx LetStmt<'tcx>)
Assignment to, or initializer for, a local
ConstStatic(OwnerId)
Initializer for a const or static item.
Return(OwnerId)
Implicit or explicit return from a function.
Field(&'tcx ExprField<'tcx>)
Initialization of a struct field.
FnArg(&'tcx Expr<'tcx>, usize)
An argument to a function.
MethodArg(HirId, Option<&'tcx GenericArgs<'tcx>>, usize)
An argument to a method.
Callee
The callee of a function call.
FieldAccess(Ident)
Access of a field.
AddrOf(BorrowKind, Mutability)
Borrow expression.
Other
Implementations§
Source§impl<'tcx> ExprUseNode<'tcx>
impl<'tcx> ExprUseNode<'tcx>
Sourcepub fn defined_ty(&self, cx: &LateContext<'tcx>) -> Option<DefinedTy<'tcx>>
pub fn defined_ty(&self, cx: &LateContext<'tcx>) -> Option<DefinedTy<'tcx>>
Gets the needed type as it’s defined without any type inference.
Auto Trait Implementations§
impl<'tcx> Freeze for ExprUseNode<'tcx>
impl<'tcx> RefUnwindSafe for ExprUseNode<'tcx>
impl<'tcx> Send for ExprUseNode<'tcx>
impl<'tcx> Sync for ExprUseNode<'tcx>
impl<'tcx> Unpin for ExprUseNode<'tcx>
impl<'tcx> UnwindSafe for ExprUseNode<'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