]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #100726 - jswrenn:transmute, r=oli-obk
authorbors <bors@rust-lang.org>
Sun, 4 Sep 2022 07:55:44 +0000 (07:55 +0000)
committerbors <bors@rust-lang.org>
Sun, 4 Sep 2022 07:55:44 +0000 (07:55 +0000)
safe transmute: use `Assume` struct to provide analysis options

This task was left as a TODO in #92268; resolving it brings [`BikeshedIntrinsicFrom`](https://doc.rust-lang.org/nightly/core/mem/trait.BikeshedIntrinsicFrom.html) more in line with the API defined in [MCP411](https://github.com/rust-lang/compiler-team/issues/411).

**Before:**
```rust
pub unsafe trait BikeshedIntrinsicFrom<
    Src,
    Context,
    const ASSUME_ALIGNMENT: bool,
    const ASSUME_LIFETIMES: bool,
    const ASSUME_VALIDITY: bool,
    const ASSUME_VISIBILITY: bool,
> where
    Src: ?Sized,
{}
```
**After:**
```rust
pub unsafe trait BikeshedIntrinsicFrom<Src, Context, const ASSUME: Assume = { Assume::NOTHING }>
where
    Src: ?Sized,
{}
```

`Assume::visibility` has also been renamed to `Assume::safety`, as library safety invariants are what's actually being assumed; visibility is just the mechanism by which it is currently checked (and that may change).

r? `@oli-obk`

---

Related:
- https://github.com/rust-lang/compiler-team/issues/411
- https://github.com/rust-lang/rust/issues/99571

1  2 
Cargo.lock
compiler/rustc_hir/src/lang_items.rs
compiler/rustc_span/src/symbol.rs
compiler/rustc_transmute/src/lib.rs
compiler/rustc_transmute/src/maybe_transmutable/mod.rs
library/core/src/lib.rs

diff --cc Cargo.lock
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge