Skip to content

Commit

Permalink
Auto merge of #121662 - saethlin:precondition-unification, r=RalfJung
Browse files Browse the repository at this point in the history
Distinguish between library and lang UB in assert_unsafe_precondition

As described in rust-lang/rust#121583 (comment), `assert_unsafe_precondition` now explicitly distinguishes between language UB (conditions we explicitly optimize on) and library UB (things we document you shouldn't do, and maybe some library internals assume you don't do).

`debug_assert_nounwind` was originally added to avoid the "only at runtime" aspect of `assert_unsafe_precondition`. Since then the difference between the macros has gotten muddied. This totally revamps the situation.

Now _all_ preconditions shall be checked with `assert_unsafe_precondition`. If you have a precondition that's only checkable at runtime, do a `const_eval_select` hack, as done in this PR.

r? RalfJung
  • Loading branch information
bors committed Mar 10, 2024
2 parents d4b1323 + 509e17a commit 2e81c58
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit 2e81c58

Please sign in to comment.