Docs for thir::ExprKind::Use
and thir::ExprKind::Let
This commit is contained in:
parent
c2901f5435
commit
cac0b121b6
@ -321,9 +321,13 @@ pub enum ExprKind<'tcx> {
|
||||
Cast {
|
||||
source: ExprId,
|
||||
},
|
||||
/// Forces its contents to be treated as a value expression, not a place
|
||||
/// expression. This is inserted in some places where an operation would
|
||||
/// otherwise be erased completely (e.g. some no-op casts), but we still
|
||||
/// need to ensure that its operand is treated as a value and not a place.
|
||||
Use {
|
||||
source: ExprId,
|
||||
}, // Use a lexpr to get a vexpr.
|
||||
},
|
||||
/// A coercion from `!` to any type.
|
||||
NeverToAny {
|
||||
source: ExprId,
|
||||
@ -338,6 +342,13 @@ pub enum ExprKind<'tcx> {
|
||||
Loop {
|
||||
body: ExprId,
|
||||
},
|
||||
/// Special expression representing the `let` part of an `if let` or similar construct
|
||||
/// (including `if let` guards in match arms, and let-chains formed by `&&`).
|
||||
///
|
||||
/// This isn't considered a real expression in surface Rust syntax, so it can
|
||||
/// only appear in specific situations, such as within the condition of an `if`.
|
||||
///
|
||||
/// (Not to be confused with [`StmtKind::Let`], which is a normal `let` statement.)
|
||||
Let {
|
||||
expr: ExprId,
|
||||
pat: Box<Pat<'tcx>>,
|
||||
|
Loading…
Reference in New Issue
Block a user