Enum rustc_span::hygiene::DesugaringKind [−][src]
pub enum DesugaringKind {
CondTemporary,
QuestionMark,
TryBlock,
OpaqueTy,
Async,
Await,
ForLoop(ForLoopLoc),
LetElse,
WhileLoop,
}
Expand description
The kind of compiler desugaring.
Variants
We desugar if c { i } else { e }
to match $ExprKind::Use(c) { true => i, _ => e }
.
However, we do not want to blame c
for unreachability but rather say that i
is unreachable. This desugaring kind allows us to avoid blaming c
.
This also applies to while
loops.
Desugaring of an impl Trait
in return type position
to an type Foo = impl Trait;
and replacing the
impl Trait
with Foo
.
ForLoop(ForLoopLoc)
Tuple Fields of ForLoop
0: ForLoopLoc
Implementations
Trait Implementations
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for DesugaringKind
impl Send for DesugaringKind
impl Sync for DesugaringKind
impl Unpin for DesugaringKind
impl UnwindSafe for DesugaringKind
Blanket Implementations
Mutably borrows from an owned value. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
CondTemporary
: 0 bytesQuestionMark
: 0 bytesTryBlock
: 0 bytesOpaqueTy
: 0 bytesAsync
: 0 bytesAwait
: 0 bytesForLoop
: 1 byteLetElse
: 0 bytesWhileLoop
: 0 bytes