about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/clean/inline.rs1
-rw-r--r--src/librustdoc/clean/types.rs1
-rw-r--r--src/librustdoc/clean/utils.rs8
-rw-r--r--src/librustdoc/html/render/print_item.rs17
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()));