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(),
|
||||
name: None,
|
||||
attrs: Default::default(),
|
||||
visibility: None,
|
||||
visibility: Inherited,
|
||||
def_id: self.cx.next_def_id(param_env_def_id.krate),
|
||||
stability: 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),
|
||||
name: None,
|
||||
attrs: Default::default(),
|
||||
visibility: None,
|
||||
visibility: Inherited,
|
||||
def_id: self.cx.next_def_id(impl_def_id.krate),
|
||||
stability: None,
|
||||
deprecation: None,
|
||||
|
|
|
@ -131,7 +131,7 @@ pub fn try_inline(
|
|||
name: Some(name.clean(cx)),
|
||||
attrs,
|
||||
inner,
|
||||
visibility: Some(clean::Public),
|
||||
visibility: clean::Public,
|
||||
stability: cx.tcx.lookup_stability(did).clean(cx),
|
||||
deprecation: cx.tcx.lookup_deprecation(did).clean(cx),
|
||||
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),
|
||||
name: None,
|
||||
attrs,
|
||||
visibility: Some(clean::Inherited),
|
||||
visibility: clean::Inherited,
|
||||
stability: tcx.lookup_stability(did).clean(cx),
|
||||
deprecation: tcx.lookup_deprecation(did).clean(cx),
|
||||
def_id: did,
|
||||
|
|
|
@ -187,7 +187,7 @@ pub fn krate(mut cx: &mut DocContext<'_>) -> Crate {
|
|||
source: Span::empty(),
|
||||
name: Some(prim.to_url_str().to_string()),
|
||||
attrs: attrs.clone(),
|
||||
visibility: Some(Public),
|
||||
visibility: Public,
|
||||
stability: get_stability(cx, def_id),
|
||||
deprecation: get_deprecation(cx, def_id),
|
||||
def_id,
|
||||
|
@ -199,7 +199,7 @@ pub fn krate(mut cx: &mut DocContext<'_>) -> Crate {
|
|||
source: Span::empty(),
|
||||
name: Some(kw.clone()),
|
||||
attrs: attrs,
|
||||
visibility: Some(Public),
|
||||
visibility: Public,
|
||||
stability: get_stability(cx, def_id),
|
||||
deprecation: get_deprecation(cx, def_id),
|
||||
def_id,
|
||||
|
@ -361,7 +361,7 @@ pub struct Item {
|
|||
pub name: Option<String>,
|
||||
pub attrs: Attributes,
|
||||
pub inner: ItemEnum,
|
||||
pub visibility: Option<Visibility>,
|
||||
pub visibility: Visibility,
|
||||
pub def_id: DefId,
|
||||
pub stability: Option<Stability>,
|
||||
pub deprecation: Option<Deprecation>,
|
||||
|
@ -2311,7 +2311,7 @@ impl Clean<Item> for hir::TraitItem {
|
|||
attrs: self.attrs.clean(cx),
|
||||
source: self.span.clean(cx),
|
||||
def_id: local_did,
|
||||
visibility: None,
|
||||
visibility: Visibility::Inherited,
|
||||
stability: get_stability(cx, local_did),
|
||||
deprecation: get_deprecation(cx, local_did),
|
||||
inner,
|
||||
|
@ -2496,7 +2496,7 @@ impl Clean<Item> for ty::AssocItem {
|
|||
|
||||
let visibility = match self.container {
|
||||
ty::ImplContainer(_) => self.vis.clean(cx),
|
||||
ty::TraitContainer(_) => None,
|
||||
ty::TraitContainer(_) => Inherited,
|
||||
};
|
||||
|
||||
Item {
|
||||
|
@ -3293,9 +3293,9 @@ pub enum Visibility {
|
|||
Restricted(DefId, Path),
|
||||
}
|
||||
|
||||
impl Clean<Option<Visibility>> for hir::Visibility {
|
||||
fn clean(&self, cx: &DocContext<'_>) -> Option<Visibility> {
|
||||
Some(match self.node {
|
||||
impl Clean<Visibility> for hir::Visibility {
|
||||
fn clean(&self, cx: &DocContext<'_>) -> Visibility {
|
||||
match self.node {
|
||||
hir::VisibilityKind::Public => Visibility::Public,
|
||||
hir::VisibilityKind::Inherited => Visibility::Inherited,
|
||||
hir::VisibilityKind::Crate(_) => Visibility::Crate,
|
||||
|
@ -3304,13 +3304,13 @@ impl Clean<Option<Visibility>> for hir::Visibility {
|
|||
let did = register_res(cx, path.res);
|
||||
Visibility::Restricted(did, path)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Clean<Option<Visibility>> for ty::Visibility {
|
||||
fn clean(&self, _: &DocContext<'_>) -> Option<Visibility> {
|
||||
Some(if *self == ty::Visibility::Public { Public } else { Inherited })
|
||||
impl Clean<Visibility> for ty::Visibility {
|
||||
fn clean(&self, _: &DocContext<'_>) -> Visibility {
|
||||
if *self == ty::Visibility::Public { Public } else { Inherited }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3427,7 +3427,7 @@ impl Clean<Item> for doctree::Variant<'_> {
|
|||
name: Some(self.name.clean(cx)),
|
||||
attrs: self.attrs.clean(cx),
|
||||
source: self.whence.clean(cx),
|
||||
visibility: None,
|
||||
visibility: Inherited,
|
||||
stability: cx.stability(self.id).clean(cx),
|
||||
deprecation: cx.deprecation(self.id).clean(cx),
|
||||
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)),
|
||||
attrs: inline::load_attrs(cx, 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,
|
||||
inner: VariantItem(Variant { kind }),
|
||||
stability: get_stability(cx, self.def_id),
|
||||
|
@ -4333,7 +4333,7 @@ impl Clean<Item> for doctree::Macro<'_> {
|
|||
name: Some(name.clone()),
|
||||
attrs: self.attrs.clean(cx),
|
||||
source: self.whence.clean(cx),
|
||||
visibility: Some(Public),
|
||||
visibility: Public,
|
||||
stability: cx.stability(self.hid).clean(cx),
|
||||
deprecation: cx.deprecation(self.hid).clean(cx),
|
||||
def_id: self.def_id,
|
||||
|
@ -4361,7 +4361,7 @@ impl Clean<Item> for doctree::ProcMacro<'_> {
|
|||
name: Some(self.name.clean(cx)),
|
||||
attrs: self.attrs.clean(cx),
|
||||
source: self.whence.clean(cx),
|
||||
visibility: Some(Public),
|
||||
visibility: Public,
|
||||
stability: cx.stability(self.id).clean(cx),
|
||||
deprecation: cx.deprecation(self.id).clean(cx),
|
||||
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
|
||||
/// visibility is preset)
|
||||
#[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
|
||||
/// space after it.
|
||||
#[derive(Copy, Clone)]
|
||||
|
@ -1034,11 +1034,7 @@ impl Function<'_> {
|
|||
|
||||
impl<'a> fmt::Display for VisSpace<'a> {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
if let Some(v) = self.0 {
|
||||
fmt::Display::fmt(&v.print_with_space(), f)
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
fmt::Display::fmt(&self.0.print_with_space(), f)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1511,7 +1511,7 @@ impl DocFolder for Cache {
|
|||
self.paths.insert(item.def_id, (stack, ItemType::Enum));
|
||||
}
|
||||
|
||||
clean::PrimitiveItem(..) if item.visibility.is_some() => {
|
||||
clean::PrimitiveItem(..) => {
|
||||
self.add_aliases(&item);
|
||||
self.paths.insert(item.def_id, (self.stack.clone(),
|
||||
item.type_()));
|
||||
|
@ -4306,8 +4306,7 @@ fn get_methods(
|
|||
) -> Vec<String> {
|
||||
i.items.iter().filter_map(|item| {
|
||||
match item.name {
|
||||
// Maybe check with clean::Visibility::Public as well?
|
||||
Some(ref name) if !name.is_empty() && item.visibility.is_some() && item.is_method() => {
|
||||
Some(ref name) if !name.is_empty() && item.is_method() => {
|
||||
if !for_deref || should_render_item(item, deref_mut) {
|
||||
Some(format!("<a href=\"#{}\">{}</a>",
|
||||
get_next_url(used_links, format!("method.{}", name)),
|
||||
|
|
|
@ -185,13 +185,13 @@ impl<'a> DocFolder for Stripper<'a> {
|
|||
}
|
||||
|
||||
clean::StructFieldItem(..) => {
|
||||
if i.visibility != Some(clean::Public) {
|
||||
if i.visibility != clean::Public {
|
||||
return StripItem(i).strip();
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
let old = mem::replace(&mut self.update_retained, false);
|
||||
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> {
|
||||
match i.inner {
|
||||
clean::ExternCrateItem(..) | clean::ImportItem(..)
|
||||
if i.visibility != Some(clean::Public) =>
|
||||
if i.visibility != clean::Public =>
|
||||
{
|
||||
None
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue