Unwrap Visibility fields
There's not really any reason to not have the visibility default to inherited, and this saves us the trouble of checking everywhere for whether we have a visibility or not.
This commit is contained in:
parent
04b27efa00
commit
ec349bef24
7 changed files with 27 additions and 32 deletions
|
@ -119,7 +119,7 @@ impl<'a, 'tcx> AutoTraitFinder<'a, 'tcx> {
|
||||||
source: Span::empty(),
|
source: Span::empty(),
|
||||||
name: None,
|
name: None,
|
||||||
attrs: Default::default(),
|
attrs: Default::default(),
|
||||||
visibility: None,
|
visibility: Inherited,
|
||||||
def_id: self.cx.next_def_id(param_env_def_id.krate),
|
def_id: self.cx.next_def_id(param_env_def_id.krate),
|
||||||
stability: None,
|
stability: None,
|
||||||
deprecation: None,
|
deprecation: None,
|
||||||
|
|
|
@ -99,7 +99,7 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> {
|
||||||
source: self.cx.tcx.def_span(impl_def_id).clean(self.cx),
|
source: self.cx.tcx.def_span(impl_def_id).clean(self.cx),
|
||||||
name: None,
|
name: None,
|
||||||
attrs: Default::default(),
|
attrs: Default::default(),
|
||||||
visibility: None,
|
visibility: Inherited,
|
||||||
def_id: self.cx.next_def_id(impl_def_id.krate),
|
def_id: self.cx.next_def_id(impl_def_id.krate),
|
||||||
stability: None,
|
stability: None,
|
||||||
deprecation: None,
|
deprecation: None,
|
||||||
|
|
|
@ -131,7 +131,7 @@ pub fn try_inline(
|
||||||
name: Some(name.clean(cx)),
|
name: Some(name.clean(cx)),
|
||||||
attrs,
|
attrs,
|
||||||
inner,
|
inner,
|
||||||
visibility: Some(clean::Public),
|
visibility: clean::Public,
|
||||||
stability: cx.tcx.lookup_stability(did).clean(cx),
|
stability: cx.tcx.lookup_stability(did).clean(cx),
|
||||||
deprecation: cx.tcx.lookup_deprecation(did).clean(cx),
|
deprecation: cx.tcx.lookup_deprecation(did).clean(cx),
|
||||||
def_id: did,
|
def_id: did,
|
||||||
|
@ -418,7 +418,7 @@ pub fn build_impl(cx: &DocContext<'_>, did: DefId, attrs: Option<Attrs<'_>>,
|
||||||
source: tcx.def_span(did).clean(cx),
|
source: tcx.def_span(did).clean(cx),
|
||||||
name: None,
|
name: None,
|
||||||
attrs,
|
attrs,
|
||||||
visibility: Some(clean::Inherited),
|
visibility: clean::Inherited,
|
||||||
stability: tcx.lookup_stability(did).clean(cx),
|
stability: tcx.lookup_stability(did).clean(cx),
|
||||||
deprecation: tcx.lookup_deprecation(did).clean(cx),
|
deprecation: tcx.lookup_deprecation(did).clean(cx),
|
||||||
def_id: did,
|
def_id: did,
|
||||||
|
|
|
@ -187,7 +187,7 @@ pub fn krate(mut cx: &mut DocContext<'_>) -> Crate {
|
||||||
source: Span::empty(),
|
source: Span::empty(),
|
||||||
name: Some(prim.to_url_str().to_string()),
|
name: Some(prim.to_url_str().to_string()),
|
||||||
attrs: attrs.clone(),
|
attrs: attrs.clone(),
|
||||||
visibility: Some(Public),
|
visibility: Public,
|
||||||
stability: get_stability(cx, def_id),
|
stability: get_stability(cx, def_id),
|
||||||
deprecation: get_deprecation(cx, def_id),
|
deprecation: get_deprecation(cx, def_id),
|
||||||
def_id,
|
def_id,
|
||||||
|
@ -199,7 +199,7 @@ pub fn krate(mut cx: &mut DocContext<'_>) -> Crate {
|
||||||
source: Span::empty(),
|
source: Span::empty(),
|
||||||
name: Some(kw.clone()),
|
name: Some(kw.clone()),
|
||||||
attrs: attrs,
|
attrs: attrs,
|
||||||
visibility: Some(Public),
|
visibility: Public,
|
||||||
stability: get_stability(cx, def_id),
|
stability: get_stability(cx, def_id),
|
||||||
deprecation: get_deprecation(cx, def_id),
|
deprecation: get_deprecation(cx, def_id),
|
||||||
def_id,
|
def_id,
|
||||||
|
@ -361,7 +361,7 @@ pub struct Item {
|
||||||
pub name: Option<String>,
|
pub name: Option<String>,
|
||||||
pub attrs: Attributes,
|
pub attrs: Attributes,
|
||||||
pub inner: ItemEnum,
|
pub inner: ItemEnum,
|
||||||
pub visibility: Option<Visibility>,
|
pub visibility: Visibility,
|
||||||
pub def_id: DefId,
|
pub def_id: DefId,
|
||||||
pub stability: Option<Stability>,
|
pub stability: Option<Stability>,
|
||||||
pub deprecation: Option<Deprecation>,
|
pub deprecation: Option<Deprecation>,
|
||||||
|
@ -2311,7 +2311,7 @@ impl Clean<Item> for hir::TraitItem {
|
||||||
attrs: self.attrs.clean(cx),
|
attrs: self.attrs.clean(cx),
|
||||||
source: self.span.clean(cx),
|
source: self.span.clean(cx),
|
||||||
def_id: local_did,
|
def_id: local_did,
|
||||||
visibility: None,
|
visibility: Visibility::Inherited,
|
||||||
stability: get_stability(cx, local_did),
|
stability: get_stability(cx, local_did),
|
||||||
deprecation: get_deprecation(cx, local_did),
|
deprecation: get_deprecation(cx, local_did),
|
||||||
inner,
|
inner,
|
||||||
|
@ -2496,7 +2496,7 @@ impl Clean<Item> for ty::AssocItem {
|
||||||
|
|
||||||
let visibility = match self.container {
|
let visibility = match self.container {
|
||||||
ty::ImplContainer(_) => self.vis.clean(cx),
|
ty::ImplContainer(_) => self.vis.clean(cx),
|
||||||
ty::TraitContainer(_) => None,
|
ty::TraitContainer(_) => Inherited,
|
||||||
};
|
};
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -3293,9 +3293,9 @@ pub enum Visibility {
|
||||||
Restricted(DefId, Path),
|
Restricted(DefId, Path),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Clean<Option<Visibility>> for hir::Visibility {
|
impl Clean<Visibility> for hir::Visibility {
|
||||||
fn clean(&self, cx: &DocContext<'_>) -> Option<Visibility> {
|
fn clean(&self, cx: &DocContext<'_>) -> Visibility {
|
||||||
Some(match self.node {
|
match self.node {
|
||||||
hir::VisibilityKind::Public => Visibility::Public,
|
hir::VisibilityKind::Public => Visibility::Public,
|
||||||
hir::VisibilityKind::Inherited => Visibility::Inherited,
|
hir::VisibilityKind::Inherited => Visibility::Inherited,
|
||||||
hir::VisibilityKind::Crate(_) => Visibility::Crate,
|
hir::VisibilityKind::Crate(_) => Visibility::Crate,
|
||||||
|
@ -3304,13 +3304,13 @@ impl Clean<Option<Visibility>> for hir::Visibility {
|
||||||
let did = register_res(cx, path.res);
|
let did = register_res(cx, path.res);
|
||||||
Visibility::Restricted(did, path)
|
Visibility::Restricted(did, path)
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Clean<Option<Visibility>> for ty::Visibility {
|
impl Clean<Visibility> for ty::Visibility {
|
||||||
fn clean(&self, _: &DocContext<'_>) -> Option<Visibility> {
|
fn clean(&self, _: &DocContext<'_>) -> Visibility {
|
||||||
Some(if *self == ty::Visibility::Public { Public } else { Inherited })
|
if *self == ty::Visibility::Public { Public } else { Inherited }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3427,7 +3427,7 @@ impl Clean<Item> for doctree::Variant<'_> {
|
||||||
name: Some(self.name.clean(cx)),
|
name: Some(self.name.clean(cx)),
|
||||||
attrs: self.attrs.clean(cx),
|
attrs: self.attrs.clean(cx),
|
||||||
source: self.whence.clean(cx),
|
source: self.whence.clean(cx),
|
||||||
visibility: None,
|
visibility: Inherited,
|
||||||
stability: cx.stability(self.id).clean(cx),
|
stability: cx.stability(self.id).clean(cx),
|
||||||
deprecation: cx.deprecation(self.id).clean(cx),
|
deprecation: cx.deprecation(self.id).clean(cx),
|
||||||
def_id: cx.tcx.hir().local_def_id(self.id),
|
def_id: cx.tcx.hir().local_def_id(self.id),
|
||||||
|
@ -3470,7 +3470,7 @@ impl Clean<Item> for ty::VariantDef {
|
||||||
name: Some(self.ident.clean(cx)),
|
name: Some(self.ident.clean(cx)),
|
||||||
attrs: inline::load_attrs(cx, self.def_id).clean(cx),
|
attrs: inline::load_attrs(cx, self.def_id).clean(cx),
|
||||||
source: cx.tcx.def_span(self.def_id).clean(cx),
|
source: cx.tcx.def_span(self.def_id).clean(cx),
|
||||||
visibility: Some(Inherited),
|
visibility: Inherited,
|
||||||
def_id: self.def_id,
|
def_id: self.def_id,
|
||||||
inner: VariantItem(Variant { kind }),
|
inner: VariantItem(Variant { kind }),
|
||||||
stability: get_stability(cx, self.def_id),
|
stability: get_stability(cx, self.def_id),
|
||||||
|
@ -4333,7 +4333,7 @@ impl Clean<Item> for doctree::Macro<'_> {
|
||||||
name: Some(name.clone()),
|
name: Some(name.clone()),
|
||||||
attrs: self.attrs.clean(cx),
|
attrs: self.attrs.clean(cx),
|
||||||
source: self.whence.clean(cx),
|
source: self.whence.clean(cx),
|
||||||
visibility: Some(Public),
|
visibility: Public,
|
||||||
stability: cx.stability(self.hid).clean(cx),
|
stability: cx.stability(self.hid).clean(cx),
|
||||||
deprecation: cx.deprecation(self.hid).clean(cx),
|
deprecation: cx.deprecation(self.hid).clean(cx),
|
||||||
def_id: self.def_id,
|
def_id: self.def_id,
|
||||||
|
@ -4361,7 +4361,7 @@ impl Clean<Item> for doctree::ProcMacro<'_> {
|
||||||
name: Some(self.name.clean(cx)),
|
name: Some(self.name.clean(cx)),
|
||||||
attrs: self.attrs.clean(cx),
|
attrs: self.attrs.clean(cx),
|
||||||
source: self.whence.clean(cx),
|
source: self.whence.clean(cx),
|
||||||
visibility: Some(Public),
|
visibility: Public,
|
||||||
stability: cx.stability(self.id).clean(cx),
|
stability: cx.stability(self.id).clean(cx),
|
||||||
deprecation: cx.deprecation(self.id).clean(cx),
|
deprecation: cx.deprecation(self.id).clean(cx),
|
||||||
def_id: cx.tcx.hir().local_def_id(self.id),
|
def_id: cx.tcx.hir().local_def_id(self.id),
|
||||||
|
|
|
@ -111,7 +111,7 @@ impl Buffer {
|
||||||
/// Helper to render an optional visibility with a space after it (if the
|
/// Helper to render an optional visibility with a space after it (if the
|
||||||
/// visibility is preset)
|
/// visibility is preset)
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
pub struct VisSpace<'a>(pub &'a Option<clean::Visibility>);
|
pub struct VisSpace<'a>(pub &'a clean::Visibility);
|
||||||
/// Similarly to VisSpace, this structure is used to render a function style with a
|
/// Similarly to VisSpace, this structure is used to render a function style with a
|
||||||
/// space after it.
|
/// space after it.
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
|
@ -1034,11 +1034,7 @@ impl Function<'_> {
|
||||||
|
|
||||||
impl<'a> fmt::Display for VisSpace<'a> {
|
impl<'a> fmt::Display for VisSpace<'a> {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
if let Some(v) = self.0 {
|
fmt::Display::fmt(&self.0.print_with_space(), f)
|
||||||
fmt::Display::fmt(&v.print_with_space(), f)
|
|
||||||
} else {
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1511,7 +1511,7 @@ impl DocFolder for Cache {
|
||||||
self.paths.insert(item.def_id, (stack, ItemType::Enum));
|
self.paths.insert(item.def_id, (stack, ItemType::Enum));
|
||||||
}
|
}
|
||||||
|
|
||||||
clean::PrimitiveItem(..) if item.visibility.is_some() => {
|
clean::PrimitiveItem(..) => {
|
||||||
self.add_aliases(&item);
|
self.add_aliases(&item);
|
||||||
self.paths.insert(item.def_id, (self.stack.clone(),
|
self.paths.insert(item.def_id, (self.stack.clone(),
|
||||||
item.type_()));
|
item.type_()));
|
||||||
|
@ -4306,8 +4306,7 @@ fn get_methods(
|
||||||
) -> Vec<String> {
|
) -> Vec<String> {
|
||||||
i.items.iter().filter_map(|item| {
|
i.items.iter().filter_map(|item| {
|
||||||
match item.name {
|
match item.name {
|
||||||
// Maybe check with clean::Visibility::Public as well?
|
Some(ref name) if !name.is_empty() && item.is_method() => {
|
||||||
Some(ref name) if !name.is_empty() && item.visibility.is_some() && item.is_method() => {
|
|
||||||
if !for_deref || should_render_item(item, deref_mut) {
|
if !for_deref || should_render_item(item, deref_mut) {
|
||||||
Some(format!("<a href=\"#{}\">{}</a>",
|
Some(format!("<a href=\"#{}\">{}</a>",
|
||||||
get_next_url(used_links, format!("method.{}", name)),
|
get_next_url(used_links, format!("method.{}", name)),
|
||||||
|
|
|
@ -185,13 +185,13 @@ impl<'a> DocFolder for Stripper<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
clean::StructFieldItem(..) => {
|
clean::StructFieldItem(..) => {
|
||||||
if i.visibility != Some(clean::Public) {
|
if i.visibility != clean::Public {
|
||||||
return StripItem(i).strip();
|
return StripItem(i).strip();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
clean::ModuleItem(..) => {
|
clean::ModuleItem(..) => {
|
||||||
if i.def_id.is_local() && i.visibility != Some(clean::Public) {
|
if i.def_id.is_local() && i.visibility != clean::Public {
|
||||||
debug!("Stripper: stripping module {:?}", i.name);
|
debug!("Stripper: stripping module {:?}", i.name);
|
||||||
let old = mem::replace(&mut self.update_retained, false);
|
let old = mem::replace(&mut self.update_retained, false);
|
||||||
let ret = StripItem(self.fold_item_recur(i).unwrap()).strip();
|
let ret = StripItem(self.fold_item_recur(i).unwrap()).strip();
|
||||||
|
@ -299,7 +299,7 @@ impl DocFolder for ImportStripper {
|
||||||
fn fold_item(&mut self, i: Item) -> Option<Item> {
|
fn fold_item(&mut self, i: Item) -> Option<Item> {
|
||||||
match i.inner {
|
match i.inner {
|
||||||
clean::ExternCrateItem(..) | clean::ImportItem(..)
|
clean::ExternCrateItem(..) | clean::ImportItem(..)
|
||||||
if i.visibility != Some(clean::Public) =>
|
if i.visibility != clean::Public =>
|
||||||
{
|
{
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue