Module rustc::mir::interpret[][src]

🔬 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?

An interpreter for MIR used in CTFE and by miri

Re-exports

use std::fmt;
use mir;
use hir::def_id::DefId;
use ty;
use ty::TyCtxt;
use ty::Instance;
use ty::layout;
use ty::layout::Align;
use ty::layout::HasDataLayout;
use ty::layout::Size;
use middle::region;
use std::iter;
use std::io;
use std::ops::Deref;
use std::ops::DerefMut;
use std::hash::Hash;
use syntax::ast::Mutability;
use rustc_serialize::Encoder;
use rustc_serialize::Decodable;
use rustc_serialize::Encodable;
use rustc_data_structures::sorted_map::SortedMap;
use rustc_data_structures::fx::FxHashMap;
use rustc_data_structures::fx::FxHashMap;
use rustc_data_structures::sync::Lock as Mutex;
use rustc_data_structures::sync::HashMapExt;
use rustc_data_structures::tiny_list::TinyList;
use byteorder::WriteBytesExt;
use byteorder::ReadBytesExt;
use byteorder::LittleEndian;
use byteorder::BigEndian;
use ty::codec::TyDecoder;
use std::sync::atomic::AtomicU32;
use std::sync::atomic::Ordering;
use std::num::NonZeroU32;

Modules

error [
Experimental
]
value [
Experimental
]

Structs

AllocDecodingSession [
Experimental
]
AllocDecodingState [
Experimental
]
AllocId [
Experimental
]
AllocMap [
Experimental
]
Allocation [
Experimental
]
DynamicLifetime [
Experimental
]
EvalError [
Experimental
]
GlobalId [
Experimental
]

Uniquely identifies a specific constant or static.

Pointer [
Experimental
]
Relocations [
Experimental
]
UndefMask [
Experimental
]

Enums

AccessKind [
Experimental
]
AllocKind [
Experimental
]
AllocType [
Experimental
]
ConstValue [
Experimental
]

Represents a constant value in Rust. ByVal and ScalarPair are optimizations which matches Value's optimizations for easy conversions between these two types

EvalErrorKind [
Experimental
]
Lock [
Experimental
]
Scalar [
Experimental
]

A Scalar represents an immediate, primitive value existing outside of a memory::Allocation. It is in many ways like a small chunk of a Allocation, up to 8 bytes in size. Like a range of bytes in an Allocation, a Scalar can either represent the raw bytes of a simple value or a pointer into another Allocation

State [
Experimental
]
Value [
Experimental
]

A Value represents a single self-contained Rust value.

Constants

BLOCK_SIZE [
Experimental
]

Traits

PointerArithmetic [
Experimental
]

Functions

bit_index [
Experimental
]
read_target_uint [
Experimental
]
specialized_encode_alloc_id [
Experimental
]
write_target_int [
Experimental
]
write_target_uint [
Experimental
]

Type Definitions

AssertMessage [
Experimental
]
Block [
Experimental
]
DecodingSessionId [
Experimental
]
EvalResult [
Experimental
]