summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorDeadbeef <ent3rm4n@gmail.com>2025-07-03 23:16:46 +0800
committerMark Rousskov <mark.simulacrum@gmail.com>2025-08-01 17:36:10 -0400
commit7843c042c9db51f36b7447ba9e573e62aa01a0df (patch)
tree56d239b43402fa9bbae2dcd83b0a3ec6066043b3 /tests
parent7ab3ec175f4adcdc2a4a4316a6d8603cf2e0b670 (diff)
downloadrust-7843c042c9db51f36b7447ba9e573e62aa01a0df.tar.gz
rust-7843c042c9db51f36b7447ba9e573e62aa01a0df.zip
rustdoc: don't treat methods under const impls or traits as const
Diffstat (limited to 'tests')
-rw-r--r--tests/rustdoc/constant/const-trait-and-impl-methods.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/rustdoc/constant/const-trait-and-impl-methods.rs b/tests/rustdoc/constant/const-trait-and-impl-methods.rs
new file mode 100644
index 00000000000..30fc539e553
--- /dev/null
+++ b/tests/rustdoc/constant/const-trait-and-impl-methods.rs
@@ -0,0 +1,36 @@
+// check that we don't render `#[const_trait]` methods as `const` - even for
+// const `trait`s and `impl`s.
+#![crate_name = "foo"]
+#![feature(const_trait_impl)]
+
+//@ has foo/trait.Tr.html
+//@ has - '//*[@id="tymethod.required"]' 'fn required()'
+//@ !has - '//*[@id="tymethod.required"]' 'const'
+//@ has - '//*[@id="method.defaulted"]' 'fn defaulted()'
+//@ !has - '//*[@id="method.defaulted"]' 'const'
+#[const_trait]
+pub trait Tr {
+    fn required();
+    fn defaulted() {}
+}
+
+pub struct ConstImpl {}
+pub struct NonConstImpl {}
+
+//@ has foo/struct.ConstImpl.html
+//@ has - '//*[@id="method.required"]' 'fn required()'
+//@ !has - '//*[@id="method.required"]' 'const'
+//@ has - '//*[@id="method.defaulted"]' 'fn defaulted()'
+//@ !has - '//*[@id="method.defaulted"]' 'const'
+impl const Tr for ConstImpl {
+    fn required() {}
+}
+
+//@ has foo/struct.NonConstImpl.html
+//@ has - '//*[@id="method.required"]' 'fn required()'
+//@ !has - '//*[@id="method.required"]' 'const'
+//@ has - '//*[@id="method.defaulted"]' 'fn defaulted()'
+//@ !has - '//*[@id="method.defaulted"]' 'const'
+impl Tr for NonConstImpl {
+    fn required() {}
+}