Closed
Description
The documentation for std::hint::unreachable_unchecked()
mentions two ways that it can affect a program:
- It can enable the compiler to make optimizations based on the assumption that the function will never be executed.
- If the function actually is executed, its behavior is undefined.
It then goes on to mention the unreachable!()
macro, saying
The
unreachable!()
macro is the safe counterpart of this function, which will panic instead when executed.
This statement could be read as addressing the 2nd effect, but not the 1st. In other words, it could be interpreted as saying "the compiler will assume that unreachable!()
will never be executed, but in the event that it is it will cause a panic." It might be worth rewording this statement to make it clear that neither (1) nor (2) applies to the safe version.