Address review feedback
This commit is contained in:
parent
97c1502066
commit
81cd49ddde
@ -98,13 +98,12 @@ use crate::intrinsics;
|
||||
#[rustc_const_stable(feature = "const_unreachable_unchecked", since = "1.57.0")]
|
||||
#[cfg_attr(miri, track_caller)] // even without panics, this helps for Miri backtraces
|
||||
pub const unsafe fn unreachable_unchecked() -> ! {
|
||||
crate::panic::debug_assert_nounwind!(
|
||||
false,
|
||||
"hint::unreachable_unchecked must never be reached"
|
||||
);
|
||||
// SAFETY: the safety contract for `intrinsics::unreachable` must
|
||||
// be upheld by the caller.
|
||||
unsafe { intrinsics::unreachable() }
|
||||
unsafe {
|
||||
intrinsics::assert_unsafe_precondition!("hint::unreachable_unchecked must never be reached", () => false);
|
||||
intrinsics::unreachable()
|
||||
}
|
||||
}
|
||||
|
||||
/// Emits a machine instruction to signal the processor that it is running in
|
||||
|
@ -139,6 +139,11 @@ pub macro unreachable_2021 {
|
||||
),
|
||||
}
|
||||
|
||||
/// Asserts that a boolean expression is `true`, and perform a non-unwinding panic otherwise.
|
||||
///
|
||||
/// This macro is similar to `debug_assert!`, but is intended to be used in code that should not
|
||||
/// unwind. For example, checks in `_unchecked` functions that are intended for debugging but should
|
||||
/// not compromise unwind safety.
|
||||
#[doc(hidden)]
|
||||
#[unstable(feature = "core_panic", issue = "none")]
|
||||
#[allow_internal_unstable(core_panic, const_format_args)]
|
||||
|
@ -84,6 +84,7 @@ pub const fn panic_fmt(fmt: fmt::Arguments<'_>) -> ! {
|
||||
#[rustc_nounwind]
|
||||
#[rustc_const_unstable(feature = "core_panic", issue = "none")]
|
||||
pub const fn panic_nounwind_fmt(fmt: fmt::Arguments<'_>, force_no_backtrace: bool) -> ! {
|
||||
#[track_caller]
|
||||
fn runtime(fmt: fmt::Arguments<'_>, force_no_backtrace: bool) -> ! {
|
||||
if cfg!(feature = "panic_immediate_abort") {
|
||||
super::intrinsics::abort()
|
||||
@ -109,6 +110,7 @@ pub const fn panic_nounwind_fmt(fmt: fmt::Arguments<'_>, force_no_backtrace: boo
|
||||
}
|
||||
|
||||
#[inline]
|
||||
#[track_caller]
|
||||
const fn comptime(fmt: fmt::Arguments<'_>, _force_no_backtrace: bool) -> ! {
|
||||
panic_fmt(fmt);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user