Enum rustc::mir::Rvalue [] [src]

pub enum Rvalue<'tcx> {
    Use(Operand<'tcx>),
    Repeat(Operand<'tcx>, ConstUsize),
    Ref(&'tcx RegionBorrowKindLvalue<'tcx>),
    Len(Lvalue<'tcx>),
    Cast(CastKindOperand<'tcx>, Ty<'tcx>),
    BinaryOp(BinOpOperand<'tcx>, Operand<'tcx>),
    CheckedBinaryOp(BinOpOperand<'tcx>, Operand<'tcx>),
    UnaryOp(UnOpOperand<'tcx>),
    Discriminant(Lvalue<'tcx>),
    Box(Ty<'tcx>),
    Aggregate(AggregateKind<'tcx>, Vec<Operand<'tcx>>),
}
🔬 This is a nightly-only experimental API. (rustc_private)

Rvalues

Variants

🔬 This is a nightly-only experimental API. (rustc_private)

x (either a move or copy, depending on type of x)

🔬 This is a nightly-only experimental API. (rustc_private)

[x; 32]

🔬 This is a nightly-only experimental API. (rustc_private)

&x or &mut x

🔬 This is a nightly-only experimental API. (rustc_private)

length of a [X] or [X;n] value

🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (rustc_private)

Read the discriminant of an ADT.

Undefined (i.e. no effort is made to make it defined, but there’s no reason why it cannot be defined to return, say, a 0) if ADT is not an enum.

🔬 This is a nightly-only experimental API. (rustc_private)

Creates an uninitialized Box

🔬 This is a nightly-only experimental API. (rustc_private)

Create an aggregate value, like a tuple or struct. This is only needed because we want to distinguish dest = Foo { x: ..., y: ... } from dest.x = ...; dest.y = ...; in the case that Foo has a destructor. These rvalues can be optimized away after type-checking and before lowering.

Methods

impl<'tcx> Rvalue<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

Trait Implementations

impl<'tcx> Clone for Rvalue<'tcx>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'tcx> Encodable for Rvalue<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

deprecated in favor of rustc-serialize on crates.io

impl<'tcx> Decodable for Rvalue<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

deprecated in favor of rustc-serialize on crates.io

impl<'tcx> Debug for Rvalue<'tcx>
[src]

Formats the value using the given formatter.

impl<'tcx> TypeFoldable<'tcx> for Rvalue<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

Indicates whether this value references only 'global' types/lifetimes that are the same regardless of what fn we are in. This is used for caching. Errs on the side of returning false. Read more