about summary refs log tree commit diff
path: root/library/core/src
diff options
context:
space:
mode:
authorlcnr <rust@lcnr.de>2023-11-17 11:03:40 +0000
committerlcnr <rust@lcnr.de>2023-11-17 11:03:52 +0000
commit3b0e1d23b7fff6b57a634f529ee19d0d173a95f7 (patch)
treea8d25797012d1dcd4e5ab1e75422a11b536dcc68 /library/core/src
parentee5ef3aac9cfa6c51457f9afc720071212362d7c (diff)
downloadrust-3b0e1d23b7fff6b57a634f529ee19d0d173a95f7.tar.gz
rust-3b0e1d23b7fff6b57a634f529ee19d0d173a95f7.zip
only free lifetimes may get erased
Diffstat (limited to 'library/core/src')
-rw-r--r--library/core/src/mem/mod.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/library/core/src/mem/mod.rs b/library/core/src/mem/mod.rs
index b810318fe7d..bf10ada0176 100644
--- a/library/core/src/mem/mod.rs
+++ b/library/core/src/mem/mod.rs
@@ -1132,10 +1132,12 @@ impl<T> fmt::Debug for Discriminant<T> {
 ///
 /// [Reference]: ../../reference/items/enumerations.html#custom-discriminant-values-for-fieldless-enumerations
 ///
-/// The value of a [`Discriminant<T>`] is independent of any *lifetimes* in `T`. As such, reading
-/// or writing a `Discriminant<Foo<'a>>` as a `Discriminant<Foo<'b>>` (whether via [`transmute`] or
-/// otherwise) is always sound. Note that this is **not** true for other kinds of generic
-/// parameters; `Discriminant<Foo<A>>` and `Discriminant<Foo<B>>` might be incompatible.
+/// The value of a [`Discriminant<T>`] is independent of any *free lifetimes* in `T`. As such,
+/// reading or writing a `Discriminant<Foo<'a>>` as a `Discriminant<Foo<'b>>` (whether via
+/// [`transmute`] or otherwise) is always sound. Note that this is **not** true for other kinds
+/// of generic parameters and for higher-ranked lifetimes; `Discriminant<Foo<A>>` and
+/// `Discriminant<Foo<B>>` as well as `Discriminant<Bar<dyn for<'a> Trait<'a>>>` and
+/// `Discriminant<Bar<dyn Trait<'static>>>` may be incompatible.
 ///
 /// # Examples
 ///