Represent TraitBoundModifiers as distinct parts in HIR

This commit is contained in:
Michael Goulet 2024-10-20 20:35:18 +00:00
parent 86d69c705a
commit febb3f7c88
18 changed files with 116 additions and 117 deletions

View file

@ -552,20 +552,18 @@ impl FromClean<clean::GenericBound> for GenericBound {
}
pub(crate) fn from_trait_bound_modifier(
modifier: rustc_hir::TraitBoundModifier,
modifiers: rustc_hir::TraitBoundModifiers,
) -> TraitBoundModifier {
use rustc_hir::TraitBoundModifier::*;
match modifier {
None => TraitBoundModifier::None,
Maybe => TraitBoundModifier::Maybe,
MaybeConst => TraitBoundModifier::MaybeConst,
// FIXME(const_trait_impl): Create rjt::TBM::Const and map to it once always-const bounds
// are less experimental.
Const => TraitBoundModifier::None,
// FIXME(negative-bounds): This bound should be rendered negative, but
// since that's experimental, maybe let's not add it to the rustdoc json
// API just now...
Negative => TraitBoundModifier::None,
use rustc_hir as hir;
let hir::TraitBoundModifiers { constness, polarity } = modifiers;
match (constness, polarity) {
(hir::BoundConstness::Never, hir::BoundPolarity::Positive) => TraitBoundModifier::None,
(hir::BoundConstness::Never, hir::BoundPolarity::Maybe(_)) => TraitBoundModifier::Maybe,
(hir::BoundConstness::Maybe(_), hir::BoundPolarity::Positive) => {
TraitBoundModifier::MaybeConst
}
// FIXME: Fill out the rest of this matrix.
_ => TraitBoundModifier::None,
}
}