1
Fork 0

Make rustdoc not include self-by-value methods from Deref target

This commit is contained in:
Florian Hartwig 2017-10-31 02:01:23 +01:00
parent 5041b3bb3d
commit 32af136fb0
4 changed files with 14 additions and 13 deletions

View file

@ -3221,18 +3221,19 @@ fn should_render_item(item: &clean::Item, deref_mut_: bool) -> bool {
}; };
if let Some(self_ty) = self_type_opt { if let Some(self_ty) = self_type_opt {
let (by_mut_ref, by_box) = match self_ty { let (by_mut_ref, by_box, by_value) = match self_ty {
SelfTy::SelfBorrowed(_, mutability) | SelfTy::SelfBorrowed(_, mutability) |
SelfTy::SelfExplicit(clean::BorrowedRef { mutability, .. }) => { SelfTy::SelfExplicit(clean::BorrowedRef { mutability, .. }) => {
(mutability == Mutability::Mutable, false) (mutability == Mutability::Mutable, false, false)
}, },
SelfTy::SelfExplicit(clean::ResolvedPath { did, .. }) => { SelfTy::SelfExplicit(clean::ResolvedPath { did, .. }) => {
(false, Some(did) == cache().owned_box_did) (false, Some(did) == cache().owned_box_did, false)
}, },
_ => (false, false), SelfTy::SelfValue => (false, false, true),
_ => (false, false, false),
}; };
(deref_mut_ || !by_mut_ref) && !by_box (deref_mut_ || !by_mut_ref) && !by_box && !by_value
} else { } else {
false false
} }

View file

@ -15,8 +15,8 @@ use std::ops::Deref;
pub struct Foo; pub struct Foo;
impl Deref for Foo { impl Deref for Foo {
type Target = i32; type Target = String;
fn deref(&self) -> &i32 { loop {} } fn deref(&self) -> &String { loop {} }
} }
pub struct Bar; pub struct Bar;

View file

@ -13,10 +13,10 @@ use std::ops::Deref;
pub struct Bar; pub struct Bar;
impl Deref for Bar { impl Deref for Bar {
type Target = i32; type Target = String;
fn deref(&self) -> &i32 { loop {} } fn deref(&self) -> &String { loop {} }
} }
// @has issue_19190_2/struct.Bar.html // @has issue_19190_2/struct.Bar.html
// @has - '//*[@id="method.count_ones"]' 'fn count_ones(self) -> u32' // @!has - '//*[@id="method.new"]' 'fn new() -> String'
// @!has - '//*[@id="method.min_value"]' 'fn min_value() -> i32' // @has - '//*[@id="method.as_str"]' 'fn as_str(&self) -> &str'

View file

@ -17,8 +17,8 @@ use std::ops::Deref;
use issue_19190_3::Baz; use issue_19190_3::Baz;
// @has issue_19190_3/struct.Foo.html // @has issue_19190_3/struct.Foo.html
// @has - '//*[@id="method.count_ones"]' 'fn count_ones(self) -> u32' // @has - '//*[@id="method.as_str"]' 'fn as_str(&self) -> &str'
// @!has - '//*[@id="method.min_value"]' 'fn min_value() -> i32' // @!has - '//*[@id="method.new"]' 'fn new() -> String'
pub use issue_19190_3::Foo; pub use issue_19190_3::Foo;
// @has issue_19190_3/struct.Bar.html // @has issue_19190_3/struct.Bar.html