diff options
| -rw-r--r-- | src/librustdoc/clean/inline.rs | 1 | ||||
| -rw-r--r-- | src/librustdoc/clean/types.rs | 1 | ||||
| -rw-r--r-- | src/librustdoc/clean/utils.rs | 8 | ||||
| -rw-r--r-- | src/librustdoc/html/render/print_item.rs | 17 |
4 files changed, 17 insertions, 10 deletions
diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index 598d6da390a..277ec91f15e 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -477,7 +477,6 @@ fn build_module( }], }, did: None, - attrs: None, }, true, )), diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index dc8784df931..2b25c6a26bc 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -2081,7 +2081,6 @@ crate enum ImportKind { crate struct ImportSource { crate path: Path, crate did: Option<DefId>, - crate attrs: Option<Box<Attributes>>, } #[derive(Clone, Debug)] diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index 97dad8924b6..c2a971d6375 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -468,10 +468,10 @@ crate fn register_res(cx: &mut DocContext<'_>, res: Res) -> DefId { } crate fn resolve_use_source(cx: &mut DocContext<'_>, path: Path) -> ImportSource { - let did = if path.res.opt_def_id().is_none() { None } else { Some(register_res(cx, path.res)) }; - let attrs = did.map(|did| Box::new(cx.tcx.get_attrs(did).clean(cx))); - - ImportSource { did, path, attrs } + ImportSource { + did: if path.res.opt_def_id().is_none() { None } else { Some(register_res(cx, path.res)) }, + path, + } } crate fn enter_impl_trait<F, R>(cx: &mut DocContext<'_>, f: F) -> R diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs index d941095e5e1..a303ca956d8 100644 --- a/src/librustdoc/html/render/print_item.rs +++ b/src/librustdoc/html/render/print_item.rs @@ -4,6 +4,7 @@ use rustc_data_structures::fx::FxHashMap; use rustc_hir as hir; use rustc_hir::def::CtorKind; use rustc_hir::def_id::DefId; +use rustc_middle::dep_graph::DepContext; use rustc_middle::middle::stability; use rustc_middle::ty::TyCtxt; use rustc_span::hygiene::MacroKind; @@ -282,11 +283,19 @@ fn item_module(w: &mut Buffer, cx: &Context<'_>, item: &clean::Item, items: &[cl } clean::ImportItem(ref import) => { - let (stab, stab_tags) = if let (Some(def_id), Some(attrs)) = - (import.source.did, import.source.attrs.clone()) - { + let (stab, stab_tags) = if let Some(import_def_id) = import.source.did { + let import_attrs = Box::new(clean::Attributes::from_ast( + cx.tcx().sess().diagnostic(), + cx.tcx().get_attrs(import_def_id), + None, + )); + // Just need an item with the correct def_id and attrs - let import_item = clean::Item { def_id, attrs, ..myitem.clone() }; + let import_item = clean::Item { + def_id: import_def_id, + attrs: import_attrs, + ..myitem.clone() + }; let stab = import_item.stability_class(cx.tcx()); let stab_tags = Some(extra_info_tags(&import_item, item, cx.tcx())); |
