diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2023-09-08 14:10:49 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-08 14:10:49 +0200 |
| commit | 2cceedd0ef9fc26250f3d27f7fd4e980f1deb72d (patch) | |
| tree | 8aebbd2819373e17be3a65bf8c9bedbd18780b77 /compiler/rustc_llvm/llvm-wrapper | |
| parent | 9be4eac2647432aa863f65da8a116f2eafd90ee9 (diff) | |
| parent | 571b0fef01ea994cd9a81405283049b5595499c5 (diff) | |
| download | rust-2cceedd0ef9fc26250f3d27f7fd4e980f1deb72d.tar.gz rust-2cceedd0ef9fc26250f3d27f7fd4e980f1deb72d.zip | |
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?
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper')
0 files changed, 0 insertions, 0 deletions
