safe transmute: forbid reference lifetime extension

Modifies `BikeshedIntrinsicFrom` to forbid lifetime extensions on
references. This static check can be opted out of with the
`Assume::lifetimes` flag.

Fixes #129097
This commit is contained in:
Jack Wrenn
2024-08-14 20:10:28 +00:00
parent 0f442e265c
commit 17995d5cc2
9 changed files with 535 additions and 132 deletions

View File

@@ -9,7 +9,7 @@ pub(crate) use rustc_data_structures::fx::{FxIndexMap as Map, FxIndexSet as Set}
pub mod layout;
mod maybe_transmutable;
#[derive(Default)]
#[derive(Copy, Clone, Debug, Default)]
pub struct Assume {
pub alignment: bool,
pub lifetimes: bool,