diff options
| author | Ralf Jung <post@ralfj.de> | 2020-03-23 08:48:03 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2020-03-23 08:48:03 +0100 |
| commit | 4803f2946e3de024087d2c847b99ca7faf896135 (patch) | |
| tree | e355f2bd53badad6f978b743e20d401797807376 /src | |
| parent | d1e81ef234ff5c2e0e3a69cb4e8e5f5b0fe1fd83 (diff) | |
| download | rust-4803f2946e3de024087d2c847b99ca7faf896135.tar.gz rust-4803f2946e3de024087d2c847b99ca7faf896135.zip | |
add err_machine_stop macro
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/mir/interpret/mod.rs | 11 | ||||
| -rw-r--r-- | src/librustc_mir/const_eval/error.rs | 4 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/librustc/mir/interpret/mod.rs b/src/librustc/mir/interpret/mod.rs index dfe5adb1bbf..a2f7a2d847e 100644 --- a/src/librustc/mir/interpret/mod.rs +++ b/src/librustc/mir/interpret/mod.rs @@ -46,6 +46,13 @@ macro_rules! err_exhaust { }; } +#[macro_export] +macro_rules! err_machine_stop { + ($($tt:tt)*) => { + $crate::mir::interpret::InterpError::MachineStop(Box::new($($tt)*)) + }; +} + // In the `throw_*` macros, avoid `return` to make them work with `try {}`. #[macro_export] macro_rules! throw_unsup { @@ -79,9 +86,7 @@ macro_rules! throw_exhaust { #[macro_export] macro_rules! throw_machine_stop { - ($($tt:tt)*) => { - Err::<!, _>($crate::mir::interpret::InterpError::MachineStop(Box::new($($tt)*)))? - }; + ($($tt:tt)*) => { Err::<!, _>(err_machine_stop!($($tt)*))? }; } mod allocation; diff --git a/src/librustc_mir/const_eval/error.rs b/src/librustc_mir/const_eval/error.rs index 63ad9ec8cae..dc23eba643e 100644 --- a/src/librustc_mir/const_eval/error.rs +++ b/src/librustc_mir/const_eval/error.rs @@ -5,7 +5,7 @@ use rustc::mir::AssertKind; use rustc_span::Symbol; use super::InterpCx; -use crate::interpret::{ConstEvalErr, InterpError, InterpErrorInfo, Machine}; +use crate::interpret::{ConstEvalErr, InterpErrorInfo, Machine}; /// The CTFE machine has some custom error kinds. #[derive(Clone, Debug)] @@ -21,7 +21,7 @@ pub enum ConstEvalErrKind { // handle these. impl<'tcx> Into<InterpErrorInfo<'tcx>> for ConstEvalErrKind { fn into(self) -> InterpErrorInfo<'tcx> { - InterpError::MachineStop(Box::new(self.to_string())).into() + err_machine_stop!(self.to_string()).into() } } |
