]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_const_eval/src/interpret/mod.rs
86de4e4e32c2a5961c1871f420a9c92859ef7d04
[rust.git] / compiler / rustc_const_eval / src / interpret / mod.rs
1 //! An interpreter for MIR used in CTFE and by miri
2
3 mod cast;
4 mod discriminant;
5 mod eval_context;
6 mod intern;
7 mod intrinsics;
8 mod machine;
9 mod memory;
10 mod operand;
11 mod operator;
12 mod place;
13 mod projection;
14 mod step;
15 mod terminator;
16 mod traits;
17 mod util;
18 mod validity;
19 mod visitor;
20
21 pub use rustc_middle::mir::interpret::*; // have all the `interpret` symbols in one place: here
22
23 pub use self::eval_context::{
24     Frame, FrameInfo, InterpCx, LocalState, LocalValue, StackPopCleanup, StackPopUnwind,
25 };
26 pub use self::intern::{intern_const_alloc_recursive, InternKind};
27 pub use self::machine::{compile_time_machine, AllocMap, Machine, MayLeak, StackPopJump};
28 pub use self::memory::{AllocKind, AllocRef, AllocRefMut, FnVal, Memory, MemoryKind};
29 pub use self::operand::{ImmTy, Immediate, OpTy, Operand};
30 pub use self::place::{MPlaceTy, MemPlace, MemPlaceMeta, Place, PlaceTy};
31 pub use self::validity::{CtfeValidationMode, RefTracking};
32 pub use self::visitor::{MutValueVisitor, Value, ValueVisitor};
33
34 pub(crate) use self::intrinsics::eval_nullary_intrinsic;
35 use eval_context::{from_known_layout, mir_assign_valid_types};