Avoid unnecessary matches by changing Clean impl
This commit is contained in:
parent
91d3b7201e
commit
b8351c30e4
4 changed files with 7 additions and 16 deletions
|
|
@ -118,7 +118,7 @@ impl<'a, 'tcx> AutoTraitFinder<'a, 'tcx> {
|
|||
span: Span::dummy(),
|
||||
unsafety: hir::Unsafety::Normal,
|
||||
generics: new_generics,
|
||||
trait_: Some(trait_ref.clean(self.cx).get_trait_path().unwrap()),
|
||||
trait_: Some(trait_ref.clean(self.cx)),
|
||||
for_: ty.clean(self.cx),
|
||||
items: Vec::new(),
|
||||
negative_polarity,
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ impl<'a, 'tcx> BlanketImplFinder<'a, 'tcx> {
|
|||
.clean(self.cx),
|
||||
// FIXME(eddyb) compute both `trait_` and `for_` from
|
||||
// the post-inference `trait_ref`, as it's more accurate.
|
||||
trait_: Some(trait_ref.clean(self.cx).get_trait_path().unwrap()),
|
||||
trait_: Some(trait_ref.clean(self.cx)),
|
||||
for_: ty.clean(self.cx),
|
||||
items: self
|
||||
.cx
|
||||
|
|
|
|||
|
|
@ -446,10 +446,7 @@ crate fn build_impl(
|
|||
),
|
||||
};
|
||||
let polarity = tcx.impl_polarity(did);
|
||||
let trait_ = associated_trait.clean(cx).map(|bound| match bound {
|
||||
clean::GenericBound::TraitBound(polyt, _) => polyt.trait_,
|
||||
clean::GenericBound::Outlives(..) => unreachable!(),
|
||||
});
|
||||
let trait_ = associated_trait.clean(cx);
|
||||
if trait_.def_id() == tcx.lang_items().deref_trait() {
|
||||
super::build_deref_target_impls(cx, &trait_items, ret);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -172,12 +172,9 @@ impl Clean<Path> for (ty::TraitRef<'_>, &[TypeBinding]) {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'tcx> Clean<GenericBound> for ty::TraitRef<'tcx> {
|
||||
fn clean(&self, cx: &mut DocContext<'_>) -> GenericBound {
|
||||
GenericBound::TraitBound(
|
||||
PolyTrait { trait_: (*self, &[][..]).clean(cx), generic_params: vec![] },
|
||||
hir::TraitBoundModifier::None,
|
||||
)
|
||||
impl Clean<Path> for ty::TraitRef<'tcx> {
|
||||
fn clean(&self, cx: &mut DocContext<'_>) -> Path {
|
||||
(*self, &[][..]).clean(cx)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -384,10 +381,7 @@ impl<'tcx> Clean<WherePredicate> for ty::ProjectionPredicate<'tcx> {
|
|||
impl<'tcx> Clean<Type> for ty::ProjectionTy<'tcx> {
|
||||
fn clean(&self, cx: &mut DocContext<'_>) -> Type {
|
||||
let lifted = self.lift_to_tcx(cx.tcx).unwrap();
|
||||
let trait_ = match lifted.trait_ref(cx.tcx).clean(cx) {
|
||||
GenericBound::TraitBound(t, _) => t.trait_,
|
||||
GenericBound::Outlives(_) => panic!("cleaning a trait got a lifetime"),
|
||||
};
|
||||
let trait_ = lifted.trait_ref(cx.tcx).clean(cx);
|
||||
let self_type = self.self_ty().clean(cx);
|
||||
Type::QPath {
|
||||
name: cx.tcx.associated_item(self.item_def_id).ident.name,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue