From 34d128a263ee7a28d49110fafd59c26296f9c686 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 8 Jan 2021 22:54:35 +0100 Subject: [PATCH] Replace under-used ImplPolarity enum with a boolean --- src/librustdoc/clean/auto_trait.rs | 8 ++++---- src/librustdoc/clean/blanket_impl.rs | 2 +- src/librustdoc/clean/inline.rs | 2 +- src/librustdoc/clean/mod.rs | 11 ++++++----- src/librustdoc/clean/types.rs | 14 +++++--------- src/librustdoc/html/format.rs | 2 +- src/librustdoc/html/render/mod.rs | 11 +++-------- src/librustdoc/json/conversions.rs | 4 ++-- src/librustdoc/theme.rs | 5 ++++- 9 files changed, 27 insertions(+), 32 deletions(-) diff --git a/src/librustdoc/clean/auto_trait.rs b/src/librustdoc/clean/auto_trait.rs index 3b13cb9e98c..43fb53ba18f 100644 --- a/src/librustdoc/clean/auto_trait.rs +++ b/src/librustdoc/clean/auto_trait.rs @@ -84,14 +84,14 @@ impl<'a, 'tcx> AutoTraitFinder<'a, 'tcx> { new_generics }); - let polarity; + let negative_polarity; let new_generics = match result { AutoTraitResult::PositiveImpl(new_generics) => { - polarity = None; + negative_polarity = false; new_generics } AutoTraitResult::NegativeImpl => { - polarity = Some(ImplPolarity::Negative); + negative_polarity = true; // For negative impls, we use the generic params, but *not* the predicates, // from the original type. Otherwise, the displayed impl appears to be a @@ -130,7 +130,7 @@ impl<'a, 'tcx> AutoTraitFinder<'a, 'tcx> { trait_: Some(trait_ref.clean(self.cx).get_trait_type().unwrap()), for_: ty.clean(self.cx), items: Vec::new(), - polarity, + negative_polarity, synthetic: true, blanket_impl: None, }), diff --git a/src/librustdoc/clean/blanket_impl.rs b/src/librustdoc/clean/blanket_impl.rs index ba3eb007e38..f1c26feea46 100644 --- a/src/librustdoc/clean/blanket_impl.rs +++ b/src/librustdoc/clean/blanket_impl.rs @@ -131,7 +131,7 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> { .in_definition_order() .collect::>() .clean(self.cx), - polarity: None, + negative_polarity: false, synthetic: false, blanket_impl: Some(trait_ref.self_ty().clean(self.cx)), }), diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index ed972cc16e9..34629211ee4 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -428,7 +428,7 @@ crate fn build_impl( trait_, for_, items: trait_items, - polarity: Some(polarity.clean(cx)), + negative_polarity: polarity.clean(cx), synthetic: false, blanket_impl: None, }), diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index d29ca5c921a..14564e7f64a 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -2069,13 +2069,14 @@ impl Clean for hir::Variant<'_> { } } -impl Clean for ty::ImplPolarity { - fn clean(&self, _: &DocContext<'_>) -> ImplPolarity { +impl Clean for ty::ImplPolarity { + /// Returns whether the impl has negative polarity. + fn clean(&self, _: &DocContext<'_>) -> bool { match self { &ty::ImplPolarity::Positive | // FIXME: do we want to do something else here? - &ty::ImplPolarity::Reservation => ImplPolarity::Positive, - &ty::ImplPolarity::Negative => ImplPolarity::Negative, + &ty::ImplPolarity::Reservation => false, + &ty::ImplPolarity::Negative => true, } } } @@ -2116,7 +2117,7 @@ fn clean_impl(impl_: &hir::Item<'_>, cx: &DocContext<'_>) -> Vec { trait_, for_, items, - polarity: Some(cx.tcx.impl_polarity(def_id).clean(cx)), + negative_polarity: cx.tcx.impl_polarity(def_id).clean(cx), synthetic: false, blanket_impl: None, }); diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index b43bf88c2af..7e567bedc78 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -175,9 +175,11 @@ impl Item { } crate fn is_crate(&self) -> bool { - matches!(*self.kind, + matches!( + *self.kind, StrippedItem(box ModuleItem(Module { is_crate: true, .. })) - | ModuleItem(Module { is_crate: true, .. })) + | ModuleItem(Module { is_crate: true, .. }) + ) } crate fn is_mod(&self) -> bool { self.type_() == ItemType::Module @@ -1858,12 +1860,6 @@ crate struct Constant { crate is_literal: bool, } -#[derive(Clone, PartialEq, Debug)] -crate enum ImplPolarity { - Positive, - Negative, -} - #[derive(Clone, Debug)] crate struct Impl { crate unsafety: hir::Unsafety, @@ -1872,7 +1868,7 @@ crate struct Impl { crate trait_: Option, crate for_: Type, crate items: Vec, - crate polarity: Option, + crate negative_polarity: bool, crate synthetic: bool, crate blanket_impl: Option, } diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 6eeb7ad82c0..5c2adca3126 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -870,7 +870,7 @@ impl clean::Impl { } if let Some(ref ty) = self.trait_ { - if self.polarity == Some(clean::ImplPolarity::Negative) { + if self.negative_polarity { write!(f, "!")?; } diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index e90e26f20e3..6a32be60991 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -4327,16 +4327,15 @@ fn sidebar_assoc_items(cx: &Context<'_>, it: &clean::Item) -> String { let mut ret = impls .iter() - .filter_map(|i| { - let is_negative_impl = is_negative_impl(i.inner_impl()); - if let Some(ref i) = i.inner_impl().trait_ { + .filter_map(|it| { + if let Some(ref i) = it.inner_impl().trait_ { let i_display = format!("{:#}", i.print()); let out = Escape(&i_display); let encoded = small_url_encode(&format!("{:#}", i.print())); let generated = format!( "{}{}", encoded, - if is_negative_impl { "!" } else { "" }, + if it.inner_impl().negative_polarity { "!" } else { "" }, out ); if links.insert(generated.clone()) { Some(generated) } else { None } @@ -4503,10 +4502,6 @@ fn extract_for_impl_name(item: &clean::Item) -> Option<(String, String)> { } } -fn is_negative_impl(i: &clean::Impl) -> bool { - i.polarity == Some(clean::ImplPolarity::Negative) -} - fn sidebar_trait(cx: &Context<'_>, buf: &mut Buffer, it: &clean::Item, t: &clean::Trait) { let mut sidebar = String::new(); diff --git a/src/librustdoc/json/conversions.rs b/src/librustdoc/json/conversions.rs index e347f7f8411..5dea64ef145 100644 --- a/src/librustdoc/json/conversions.rs +++ b/src/librustdoc/json/conversions.rs @@ -422,7 +422,7 @@ impl From for Impl { trait_, for_, items, - polarity, + negative_polarity, synthetic, blanket_impl, } = impl_; @@ -436,7 +436,7 @@ impl From for Impl { trait_: trait_.map(Into::into), for_: for_.into(), items: ids(items), - negative: polarity == Some(clean::ImplPolarity::Negative), + negative: negative_polarity, synthetic, blanket_impl: blanket_impl.map(Into::into), } diff --git a/src/librustdoc/theme.rs b/src/librustdoc/theme.rs index 2e14a8a977e..24d57705412 100644 --- a/src/librustdoc/theme.rs +++ b/src/librustdoc/theme.rs @@ -70,7 +70,10 @@ impl Events { } fn is_comment(&self) -> bool { - matches!(self, Events::StartLineComment(_) | Events::StartComment(_) | Events::EndComment(_)) + matches!( + self, + Events::StartLineComment(_) | Events::StartComment(_) | Events::EndComment(_) + ) } }