From e8f0c689a5eb7425c15797ef0bc8b091f6786c0d Mon Sep 17 00:00:00 2001 From: Caio Date: Sat, 18 Jan 2025 21:06:45 -0300 Subject: [PATCH] [generic_assert] "Constify" the `Debug` trait --- library/core/src/fmt/mod.rs | 2 ++ tests/ui/traits/const-traits/debug.rs | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 tests/ui/traits/const-traits/debug.rs diff --git a/library/core/src/fmt/mod.rs b/library/core/src/fmt/mod.rs index a033b8bd30514..8d677da0f320f 100644 --- a/library/core/src/fmt/mod.rs +++ b/library/core/src/fmt/mod.rs @@ -845,6 +845,8 @@ impl Display for Arguments<'_> { /// assert_eq!(format!("The origin is: {origin:#?}"), expected); /// ``` +#[const_trait] +#[rustc_const_unstable(feature = "const_debug", issue = "none")] #[stable(feature = "rust1", since = "1.0.0")] #[rustc_on_unimplemented( on( diff --git a/tests/ui/traits/const-traits/debug.rs b/tests/ui/traits/const-traits/debug.rs new file mode 100644 index 0000000000000..ee4ca2a8a57ca --- /dev/null +++ b/tests/ui/traits/const-traits/debug.rs @@ -0,0 +1,16 @@ +//@ check-pass + +#![feature(const_debug, const_trait_impl)] + +use std::fmt::Debug; +use std::fmt::Formatter; + +pub struct Foo; + +impl const Debug for Foo { + fn fmt(&self, _: &mut Formatter<'_>) -> Result<(), std::fmt::Error> { + Ok(()) + } +} + +fn main() {}