From 14d90deab9cbbc1bfb45af52f9dc9fbce945da91 Mon Sep 17 00:00:00 2001 From: jumbatm Date: Thu, 23 Apr 2020 20:17:15 +1000 Subject: [PATCH] Don't duplicate macro for optional arg. --- src/librustc_mir/interpret/validity.rs | 30 ++++++-------------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/src/librustc_mir/interpret/validity.rs b/src/librustc_mir/interpret/validity.rs index df3c3532203..0b6422316ea 100644 --- a/src/librustc_mir/interpret/validity.rs +++ b/src/librustc_mir/interpret/validity.rs @@ -24,43 +24,25 @@ }; macro_rules! throw_validation_failure { - ($what:expr, $where:expr, $details:expr) => {{ - let mut msg = format!("encountered {}", $what); - let where_ = &$where; - if !where_.is_empty() { - msg.push_str(" at "); - write_path(&mut msg, where_); - } - write!(&mut msg, ", but expected {}", $details).unwrap(); - throw_ub!(ValidationFailure(msg)) - }}; - ($what:expr, $where:expr) => {{ + ($what:expr, $where:expr $(, $details:expr )?) => {{ let mut msg = format!("encountered {}", $what); let where_ = &$where; if !where_.is_empty() { msg.push_str(" at "); write_path(&mut msg, where_); } + $( write!(&mut msg, ", but expected {}", $details).unwrap(); )? throw_ub!(ValidationFailure(msg)) }}; } macro_rules! try_validation { - ($e:expr, $what:expr, $where:expr, $details:expr) => {{ - match $e { - Ok(x) => x, - // We re-throw the error, so we are okay with allocation: - // this can only slow down builds that fail anyway. - Err(_) => throw_validation_failure!($what, $where, $details), - } - }}; - - ($e:expr, $what:expr, $where:expr) => {{ + ($e:expr, $what:expr, $where:expr $(, $details:expr )?) => {{ match $e { Ok(x) => x, - // We re-throw the error, so we are okay with allocation: - // this can only slow down builds that fail anyway. - Err(_) => throw_validation_failure!($what, $where), + // We catch the error and turn it into a validation failure. We are okay with + // allocation here as this can only slow down builds that fail anyway. + Err(_) => throw_validation_failure!($what, $where $(, $details)?), } }}; } -- 2.44.0