all_trait_impls: Default::default(),
};
- // Because of the `crate::` prefix, any doc comment can reference
- // the crate root's set of in-scope traits. This line makes sure
- // it's available.
- loader.add_traits_in_scope(CRATE_DEF_ID.to_def_id());
-
// Overridden `visit_item` below doesn't apply to the crate root,
// so we have to visit its attributes and reexports separately.
loader.load_links_in_attrs(&krate.attrs);
/// having impls in them.
fn add_foreign_traits_in_scope(&mut self) {
for cnum in Vec::from_iter(self.resolver.cstore().crates_untracked()) {
- // FIXME: Due to #78696 rustdoc can query traits in scope for any crate root.
- self.add_traits_in_scope(cnum.as_def_id());
-
let all_traits = Vec::from_iter(self.resolver.cstore().traits_in_crate_untracked(cnum));
let all_trait_impls =
Vec::from_iter(self.resolver.cstore().trait_impls_in_crate_untracked(cnum));
let all_inherent_impls =
Vec::from_iter(self.resolver.cstore().inherent_impls_in_crate_untracked(cnum));
- let all_lang_items = Vec::from_iter(self.resolver.cstore().lang_items_untracked(cnum));
+ let all_incoherent_impls =
+ Vec::from_iter(self.resolver.cstore().incoherent_impls_in_crate_untracked(cnum));
// Querying traits in scope is expensive so we try to prune the impl and traits lists
// using privacy, private traits and impls from other crates are never documented in
self.add_traits_in_parent_scope(impl_def_id);
}
}
- for def_id in all_lang_items {
+ for def_id in all_incoherent_impls {
self.add_traits_in_parent_scope(def_id);
}