Enum rustc_mir::hair::ExprKind [−][src]
pub enum ExprKind<'tcx> {
Scope {
region_scope: Scope,
lint_level: LintLevel,
value: ExprRef<'tcx>,
},
Box {
value: ExprRef<'tcx>,
},
Call {
ty: Ty<'tcx>,
fun: ExprRef<'tcx>,
args: Vec<ExprRef<'tcx>>,
},
Deref {
arg: ExprRef<'tcx>,
},
Binary {
op: BinOp,
lhs: ExprRef<'tcx>,
rhs: ExprRef<'tcx>,
},
LogicalOp {
op: LogicalOp,
lhs: ExprRef<'tcx>,
rhs: ExprRef<'tcx>,
},
Unary {
op: UnOp,
arg: ExprRef<'tcx>,
},
Cast {
source: ExprRef<'tcx>,
},
Use {
source: ExprRef<'tcx>,
},
NeverToAny {
source: ExprRef<'tcx>,
},
ReifyFnPointer {
source: ExprRef<'tcx>,
},
ClosureFnPointer {
source: ExprRef<'tcx>,
},
UnsafeFnPointer {
source: ExprRef<'tcx>,
},
Unsize {
source: ExprRef<'tcx>,
},
If {
condition: ExprRef<'tcx>,
then: ExprRef<'tcx>,
otherwise: Option<ExprRef<'tcx>>,
},
Loop {
condition: Option<ExprRef<'tcx>>,
body: ExprRef<'tcx>,
},
Match {
discriminant: ExprRef<'tcx>,
arms: Vec<Arm<'tcx>>,
},
Block {
body: &'tcx Block,
},
Assign {
lhs: ExprRef<'tcx>,
rhs: ExprRef<'tcx>,
},
AssignOp {
op: BinOp,
lhs: ExprRef<'tcx>,
rhs: ExprRef<'tcx>,
},
Field {
lhs: ExprRef<'tcx>,
name: Field,
},
Index {
lhs: ExprRef<'tcx>,
index: ExprRef<'tcx>,
},
VarRef {
id: NodeId,
},
SelfRef,
StaticRef {
id: DefId,
},
Borrow {
region: Region<'tcx>,
borrow_kind: BorrowKind,
arg: ExprRef<'tcx>,
},
Break {
label: Scope,
value: Option<ExprRef<'tcx>>,
},
Continue {
label: Scope,
},
Return {
value: Option<ExprRef<'tcx>>,
},
Repeat {
value: ExprRef<'tcx>,
count: u64,
},
Array {
fields: Vec<ExprRef<'tcx>>,
},
Tuple {
fields: Vec<ExprRef<'tcx>>,
},
Adt {
adt_def: &'tcx AdtDef,
variant_index: usize,
substs: &'tcx Substs<'tcx>,
fields: Vec<FieldExprRef<'tcx>>,
base: Option<FruInfo<'tcx>>,
},
Closure {
closure_id: DefId,
substs: UpvarSubsts<'tcx>,
upvars: Vec<ExprRef<'tcx>>,
movability: Option<GeneratorMovability>,
},
Literal {
literal: &'tcx Const<'tcx>,
},
InlineAsm {
asm: &'tcx InlineAsm,
outputs: Vec<ExprRef<'tcx>>,
inputs: Vec<ExprRef<'tcx>>,
},
Yield {
value: ExprRef<'tcx>,
},
}🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Variants
Scope🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Scope
region_scope: Scope | 🔬 This is a nightly-only experimental API. ( |
lint_level: LintLevel | 🔬 This is a nightly-only experimental API. ( |
value: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Box🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Box
value: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Call🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Call
ty: Ty<'tcx> | 🔬 This is a nightly-only experimental API. ( |
fun: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
args: Vec<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Deref🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Deref
arg: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Binary🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Binary
op: BinOp | 🔬 This is a nightly-only experimental API. ( |
lhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
rhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
LogicalOp🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of LogicalOp
op: LogicalOp | 🔬 This is a nightly-only experimental API. ( |
lhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
rhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Unary🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Unary
op: UnOp | 🔬 This is a nightly-only experimental API. ( |
arg: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Cast🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Cast
source: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Use🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Use
source: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
NeverToAny🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of NeverToAny
source: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
ReifyFnPointer🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of ReifyFnPointer
source: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
ClosureFnPointer🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of ClosureFnPointer
source: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
UnsafeFnPointer🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of UnsafeFnPointer
source: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Unsize🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Unsize
source: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
If🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of If
condition: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
then: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
otherwise: Option<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Loop🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Loop
condition: Option<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
body: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Match🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Match
discriminant: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
arms: Vec<Arm<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Block🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Block
body: &'tcx Block | 🔬 This is a nightly-only experimental API. ( |
Assign🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Assign
lhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
rhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
AssignOp🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of AssignOp
op: BinOp | 🔬 This is a nightly-only experimental API. ( |
lhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
rhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Field🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Field
lhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
name: Field | 🔬 This is a nightly-only experimental API. ( |
Index🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Index
lhs: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
index: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
VarRef🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of VarRef
id: NodeId | 🔬 This is a nightly-only experimental API. ( |
SelfRef🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
first argument, used for self in a closure
StaticRef🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of StaticRef
id: DefId | 🔬 This is a nightly-only experimental API. ( |
Borrow🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Borrow
region: Region<'tcx> | 🔬 This is a nightly-only experimental API. ( |
borrow_kind: BorrowKind | 🔬 This is a nightly-only experimental API. ( |
arg: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Break🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Break
label: Scope | 🔬 This is a nightly-only experimental API. ( |
value: Option<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Continue🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Continue
label: Scope | 🔬 This is a nightly-only experimental API. ( |
Return🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Return
value: Option<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Repeat🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Repeat
value: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
count: u64 | 🔬 This is a nightly-only experimental API. ( |
Array🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Array
fields: Vec<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Tuple🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Tuple
fields: Vec<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Adt🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Adt
adt_def: &'tcx AdtDef | 🔬 This is a nightly-only experimental API. ( |
variant_index: usize | 🔬 This is a nightly-only experimental API. ( |
substs: &'tcx Substs<'tcx> | 🔬 This is a nightly-only experimental API. ( |
fields: Vec<FieldExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
base: Option<FruInfo<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Closure🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Closure
closure_id: DefId | 🔬 This is a nightly-only experimental API. ( |
substs: UpvarSubsts<'tcx> | 🔬 This is a nightly-only experimental API. ( |
upvars: Vec<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
movability: Option<GeneratorMovability> | 🔬 This is a nightly-only experimental API. ( |
Literal🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Literal
literal: &'tcx Const<'tcx> | 🔬 This is a nightly-only experimental API. ( |
InlineAsm🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of InlineAsm
asm: &'tcx InlineAsm | 🔬 This is a nightly-only experimental API. ( |
outputs: Vec<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
inputs: Vec<ExprRef<'tcx>> | 🔬 This is a nightly-only experimental API. ( |
Yield🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields of Yield
value: ExprRef<'tcx> | 🔬 This is a nightly-only experimental API. ( |
Trait Implementations
impl<'tcx> Clone for ExprKind<'tcx>[src]
impl<'tcx> Clone for ExprKind<'tcx>fn clone(&self) -> ExprKind<'tcx>[src]
fn clone(&self) -> ExprKind<'tcx>Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl<'tcx> Debug for ExprKind<'tcx>[src]
impl<'tcx> Debug for ExprKind<'tcx>