2017-12-12 17:14:49 +01:00
|
|
|
//! An interpreter for MIR used in CTFE and by miri
|
|
|
|
|
|
2024-08-05 17:34:44 +02:00
|
|
|
mod call;
|
2017-12-12 17:14:49 +01:00
|
|
|
mod cast;
|
2023-02-06 17:08:34 +01:00
|
|
|
mod discriminant;
|
2017-12-12 17:14:49 +01:00
|
|
|
mod eval_context;
|
2018-08-13 16:14:22 +02:00
|
|
|
mod intern;
|
2018-08-23 19:04:33 +02:00
|
|
|
mod intrinsics;
|
2017-12-12 17:14:49 +01:00
|
|
|
mod machine;
|
|
|
|
|
mod memory;
|
|
|
|
|
mod operand;
|
|
|
|
|
mod operator;
|
|
|
|
|
mod place;
|
2022-07-04 08:48:05 -04:00
|
|
|
mod projection;
|
2024-08-05 17:34:44 +02:00
|
|
|
mod stack;
|
2017-12-12 17:14:49 +01:00
|
|
|
mod step;
|
|
|
|
|
mod traits;
|
2020-07-24 13:16:54 +01:00
|
|
|
mod util;
|
2018-08-17 12:18:02 +02:00
|
|
|
mod validity;
|
2022-04-21 19:35:06 +02:00
|
|
|
mod visitor;
|
2017-12-12 17:14:49 +01:00
|
|
|
|
2024-05-02 18:47:36 +02:00
|
|
|
#[doc(no_inline)]
|
2020-03-29 16:41:09 +02:00
|
|
|
pub use rustc_middle::mir::interpret::*; // have all the `interpret` symbols in one place: here
|
2018-10-16 14:50:07 +02:00
|
|
|
|
2024-08-05 17:34:44 +02:00
|
|
|
pub use self::call::FnArg;
|
|
|
|
|
pub use self::eval_context::{InterpCx, format_interp_error};
|
2024-09-23 11:57:12 +02:00
|
|
|
use self::eval_context::{from_known_layout, mir_assign_valid_types};
|
2023-10-07 09:19:37 +00:00
|
|
|
pub use self::intern::{
|
2024-02-26 18:03:06 +00:00
|
|
|
HasStaticRootDefId, InternKind, InternResult, intern_const_alloc_for_constprop,
|
|
|
|
|
intern_const_alloc_recursive,
|
2023-10-07 09:19:37 +00:00
|
|
|
};
|
2022-05-20 19:51:09 -04:00
|
|
|
pub(crate) use self::intrinsics::eval_nullary_intrinsic;
|
2024-06-17 17:25:14 +00:00
|
|
|
pub use self::machine::{AllocMap, Machine, MayLeak, ReturnAction, compile_time_machine};
|
2024-11-09 13:13:31 +01:00
|
|
|
pub use self::memory::{AllocInfo, AllocKind, AllocRef, AllocRefMut, FnVal, Memory, MemoryKind};
|
2023-09-04 17:53:38 +02:00
|
|
|
use self::operand::Operand;
|
2024-08-28 17:39:09 +02:00
|
|
|
pub use self::operand::{ImmTy, Immediate, OpTy};
|
2023-09-04 17:53:38 +02:00
|
|
|
pub use self::place::{MPlaceTy, MemPlaceMeta, PlaceTy, Writeable};
|
|
|
|
|
use self::place::{MemPlace, Place};
|
2023-09-02 16:12:57 +02:00
|
|
|
pub use self::projection::{OffsetMode, Projectable};
|
2024-08-05 17:34:44 +02:00
|
|
|
pub use self::stack::{Frame, FrameInfo, LocalState, StackPopCleanup, StackPopInfo};
|
2024-03-11 12:33:09 +00:00
|
|
|
pub(crate) use self::util::create_static_alloc;
|
2024-08-29 19:24:31 +02:00
|
|
|
pub use self::validity::{CtfeValidationMode, RangeSet, RefTracking};
|
2023-07-24 11:44:58 +02:00
|
|
|
pub use self::visitor::ValueVisitor;
|