]> git.lizzy.rs Git - rust.git/commitdiff
rustdoc: Remove default keyword from re-exported trait methods
authorOliver Middleton <olliemail27@gmail.com>
Sun, 14 Apr 2019 22:53:51 +0000 (23:53 +0100)
committerOliver Middleton <olliemail27@gmail.com>
Sun, 14 Apr 2019 22:55:14 +0000 (23:55 +0100)
src/librustdoc/clean/mod.rs
src/test/rustdoc/default-trait-method.rs [new file with mode: 0644]
src/test/rustdoc/default_trait_method.rs [deleted file]
src/test/rustdoc/inline_cross/auxiliary/default-trait-method.rs [new file with mode: 0644]
src/test/rustdoc/inline_cross/default-trait-method.rs [new file with mode: 0644]

index e994c661fdceb9f229691ac72210131bc7e46ba8..80e796b0af73216047fa42c5ee6ec5eccc056a77 100644 (file)
@@ -2325,6 +2325,10 @@ fn clean(&self, cx: &DocContext<'_>) -> Item {
                     } else {
                         hir::Constness::NotConst
                     };
+                    let defaultness = match self.container {
+                        ty::ImplContainer(_) => Some(self.defaultness),
+                        ty::TraitContainer(_) => None,
+                    };
                     MethodItem(Method {
                         generics,
                         decl,
@@ -2334,7 +2338,7 @@ fn clean(&self, cx: &DocContext<'_>) -> Item {
                             constness,
                             asyncness: hir::IsAsync::NotAsync,
                         },
-                        defaultness: Some(self.defaultness),
+                        defaultness,
                         all_types,
                         ret_types,
                     })
diff --git a/src/test/rustdoc/default-trait-method.rs b/src/test/rustdoc/default-trait-method.rs
new file mode 100644 (file)
index 0000000..3d6ebef
--- /dev/null
@@ -0,0 +1,26 @@
+#![feature(specialization)]
+
+// @has default_trait_method/trait.Item.html
+// @has - '//*[@id="tymethod.foo"]' 'fn foo()'
+// @!has - '//*[@id="tymethod.foo"]' 'default fn foo()'
+// @has - '//*[@id="tymethod.bar"]' 'fn bar()'
+// @!has - '//*[@id="tymethod.bar"]' 'default fn bar()'
+// @has - '//*[@id="method.baz"]' 'fn baz()'
+// @!has - '//*[@id="method.baz"]' 'default fn baz()'
+pub trait Item {
+    fn foo();
+    fn bar();
+    fn baz() {}
+}
+
+// @has default_trait_method/struct.Foo.html
+// @has - '//*[@id="method.foo"]' 'default fn foo()'
+// @has - '//*[@id="method.bar"]' 'fn bar()'
+// @!has - '//*[@id="method.bar"]' 'default fn bar()'
+// @has - '//*[@id="method.baz"]' 'fn baz()'
+// @!has - '//*[@id="method.baz"]' 'default fn baz()'
+pub struct Foo;
+impl Item for Foo {
+    default fn foo() {}
+    fn bar() {}
+}
diff --git a/src/test/rustdoc/default_trait_method.rs b/src/test/rustdoc/default_trait_method.rs
deleted file mode 100644 (file)
index dfbd8f2..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#![feature(specialization)]
-
-pub trait Item {
-    fn foo();
-    fn bar();
-}
-
-// @has default_trait_method/trait.Item.html
-// @has - '//*[@id="method.foo"]' 'default fn foo()'
-// @has - '//*[@id="method.bar"]' 'fn bar()'
-// @!has - '//*[@id="method.bar"]' 'default fn bar()'
-impl<T: ?Sized> Item for T {
-    default fn foo() {}
-    fn bar() {}
-}
diff --git a/src/test/rustdoc/inline_cross/auxiliary/default-trait-method.rs b/src/test/rustdoc/inline_cross/auxiliary/default-trait-method.rs
new file mode 100644 (file)
index 0000000..ce60bbf
--- /dev/null
@@ -0,0 +1,16 @@
+#![feature(specialization)]
+
+#![crate_name = "foo"]
+
+pub trait Item {
+    fn foo();
+    fn bar();
+    fn baz() {}
+}
+
+pub struct Foo;
+
+impl Item for Foo {
+    default fn foo() {}
+    fn bar() {}
+}
diff --git a/src/test/rustdoc/inline_cross/default-trait-method.rs b/src/test/rustdoc/inline_cross/default-trait-method.rs
new file mode 100644 (file)
index 0000000..a4ec73a
--- /dev/null
@@ -0,0 +1,20 @@
+// aux-build:default-trait-method.rs
+
+extern crate foo;
+
+// @has default_trait_method/trait.Item.html
+// @has - '//*[@id="tymethod.foo"]' 'fn foo()'
+// @!has - '//*[@id="tymethod.foo"]' 'default fn foo()'
+// @has - '//*[@id="tymethod.bar"]' 'fn bar()'
+// @!has - '//*[@id="tymethod.bar"]' 'default fn bar()'
+// @has - '//*[@id="method.baz"]' 'fn baz()'
+// @!has - '//*[@id="method.baz"]' 'default fn baz()'
+pub use foo::Item;
+
+// @has default_trait_method/struct.Foo.html
+// @has - '//*[@id="method.foo"]' 'default fn foo()'
+// @has - '//*[@id="method.bar"]' 'fn bar()'
+// @!has - '//*[@id="method.bar"]' 'default fn bar()'
+// @has - '//*[@id="method.baz"]' 'fn baz()'
+// @!has - '//*[@id="method.baz"]' 'default fn baz()'
+pub use foo::Foo;