rust/library
Guillaume Gomez 2cceedd0ef
Rollup merge of #104299 - mkrasnitski:discriminant-transmute-docs, r=oli-obk
Clarify stability guarantee for lifetimes in enum discriminants

Since `std::mem::Discriminant` erases lifetimes, it should be clarified that changing the concrete value of a lifetime parameter does not change the value of an enum discriminant for a given variant. This is useful as it guarantees that it is safe to transmute `Discriminant<Foo<'a>>` to `Discriminant<Foo<'b>>` for any combination of `'a` and `'b`. This also holds for type-generics as long as the type parameters do not change, e.g. `Discriminant<Foo<T, 'a>>` can be transmuted to `Discriminant<Foo<T, 'b>>`.

Side note: Is what I've written actually enough to imply soundness (or rather codify it), or should it specifically be spelled out that it's OK to transmute in the above way?
2023-09-08 14:10:49 +02:00
..
2023-08-22 15:01:14 -07:00
2023-08-23 20:05:14 -04:00
2023-08-23 20:05:14 -04:00
2023-08-23 20:05:14 -04:00
2023-08-23 20:05:14 -04:00
2023-09-05 19:56:20 +02:00
2023-08-23 20:05:14 -04:00
2023-08-23 20:05:14 -04:00