Skip to content

Commit aaf595e

Browse files
committed
rustdoc: Separate associated types from methods
Fix #21142
1 parent d47a113 commit aaf595e

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/librustdoc/clean/inline.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,14 +147,22 @@ pub fn record_extern_fqn(cx: &DocContext, did: ast::DefId, kind: clean::TypeKind
147147

148148
pub fn build_external_trait(cx: &DocContext, tcx: &ty::ctxt,
149149
did: ast::DefId) -> clean::Trait {
150+
use clean::TraitMethod;
151+
150152
let def = ty::lookup_trait_def(tcx, did);
151153
let trait_items = ty::trait_items(tcx, did).clean(cx);
152154
let provided = ty::provided_trait_methods(tcx, did);
153155
let items = trait_items.into_iter().map(|trait_item| {
154-
if provided.iter().any(|a| a.def_id == trait_item.def_id) {
155-
clean::ProvidedMethod(trait_item)
156-
} else {
157-
clean::RequiredMethod(trait_item)
156+
match trait_item.inner {
157+
clean::TyMethodItem(_) => {
158+
if provided.iter().any(|a| a.def_id == trait_item.def_id) {
159+
TraitMethod::ProvidedMethod(trait_item)
160+
} else {
161+
TraitMethod::RequiredMethod(trait_item)
162+
}
163+
},
164+
clean::AssociatedTypeItem(_) => TraitMethod::TypeTraitItem(trait_item),
165+
_ => unreachable!()
158166
}
159167
});
160168
let trait_def = ty::lookup_trait_def(tcx, did);

0 commit comments

Comments
 (0)