Make rustdoc not include self-by-value methods from Deref target
This commit is contained in:
parent
5041b3bb3d
commit
32af136fb0
4 changed files with 14 additions and 13 deletions
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue