about summary refs log tree commit diff
path: root/tests/rustdoc
diff options
context:
space:
mode:
authorJacob Pratt <jacob@jhpratt.dev>2025-07-04 05:47:28 +0200
committerGitHub <noreply@github.com>2025-07-04 05:47:28 +0200
commit01fe1c0b0eae46a168fa8f81cc9001bf2c37a8f7 (patch)
tree5ce562f8402f2bf4168b2d3f37c610cfce885839 /tests/rustdoc
parent05f5690d81ef8ea55edac774b3646daa1e3e1575 (diff)
parent510e5d7e665400822a6495adb23e06df99cc339c (diff)
downloadrust-01fe1c0b0eae46a168fa8f81cc9001bf2c37a8f7.tar.gz
rust-01fe1c0b0eae46a168fa8f81cc9001bf2c37a8f7.zip
Rollup merge of #143381 - fee1-dead-contrib:push-pzxuvlnymxpu, r=GuillaumeGomez
rustdoc: don't treat methods under const impls or traits as const

Fixes rust-lang/rust#143071
Diffstat (limited to 'tests/rustdoc')
-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() {}
+}