From 602401c4d49753dfd9d351ffcf0c72c00ff4c62f Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sun, 31 Mar 2024 12:46:37 +0200 Subject: [PATCH] warn against implementing Freeze --- library/core/src/marker.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/core/src/marker.rs b/library/core/src/marker.rs index 385c288db12..1d073a6d649 100644 --- a/library/core/src/marker.rs +++ b/library/core/src/marker.rs @@ -817,6 +817,13 @@ pub trait DiscriminantKind { /// This can be used to declare that a constant with a generic type /// will not contain interior mutability, and subsequently allow /// placing the constant behind references. +/// +/// # Safety +/// +/// This trait is a core part of the language, it is just expressed as a trait in libcore for +/// convenience. Do *not* implement it for other types. +// FIXME: Eventually this trait should become `#[rustc_deny_explicit_impl]`. +// That requires porting the impls below to native internal impls. #[lang = "freeze"] #[unstable(feature = "freeze", issue = "121675")] pub unsafe auto trait Freeze {}