about summary refs log tree commit diff
path: root/src/test/rustdoc
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-12-02 06:11:05 +0000
committerbors <bors@rust-lang.org>2021-12-02 06:11:05 +0000
commitd9baa361902b172be716f96619b909f340802dea (patch)
tree031f0233c6dbd221df8c635de84ace18117bd1b0 /src/test/rustdoc
parenta2b7b7891e4623e716185f3ab62bd206fb4c5182 (diff)
parent02782bba604e3edc5d356dd3e153667cf1474949 (diff)
downloadrust-d9baa361902b172be716f96619b909f340802dea.tar.gz
rust-d9baa361902b172be716f96619b909f340802dea.zip
Auto merge of #91291 - GuillaumeGomez:const-deref-method, r=camelid
Fix const deref methods display

Fixes https://github.com/rust-lang/rust/issues/90855 (more information in the issue).

r? `@camelid`
Diffstat (limited to 'src/test/rustdoc')
-rw-r--r--src/test/rustdoc/deref-const-fn.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/test/rustdoc/deref-const-fn.rs b/src/test/rustdoc/deref-const-fn.rs
new file mode 100644
index 00000000000..ca51f3c7b5a
--- /dev/null
+++ b/src/test/rustdoc/deref-const-fn.rs
@@ -0,0 +1,38 @@
+// This test ensures that the const methods from Deref aren't shown as const.
+// For more information, see https://github.com/rust-lang/rust/issues/90855.
+
+#![crate_name = "foo"]
+
+#![feature(staged_api)]
+
+#![stable(feature = "rust1", since = "1.0.0")]
+
+// @has 'foo/struct.Bar.html'
+#[stable(feature = "rust1", since = "1.0.0")]
+pub struct Bar;
+
+impl Bar {
+    // @has - '//*[@id="method.len"]' 'pub const fn len(&self) -> usize'
+    // @has - '//*[@id="method.len"]//span[@class="since"]' '1.0.0 (const: 1.0.0)'
+    #[stable(feature = "rust1", since = "1.0.0")]
+    #[rustc_const_stable(feature = "rust1", since = "1.0.0")]
+    pub const fn len(&self) -> usize { 0 }
+}
+
+#[stable(feature = "rust1", since = "1.0.0")]
+pub struct Foo {
+    value: Bar,
+}
+
+// @has 'foo/struct.Foo.html'
+// @has - '//*[@id="method.len"]' 'pub fn len(&self) -> usize'
+// @!has - '//*[@id="method.len"]//span[@class="since"]' '1.0.0'
+// @!has - '//*[@id="method.len"]//span[@class="since"]' '(const: 1.0.0)'
+#[stable(feature = "rust1", since = "1.0.0")]
+impl std::ops::Deref for Foo {
+    type Target = Bar;
+
+    fn deref(&self) -> &Self::Target {
+        &self.value
+    }
+}