diff options
| author | Timothée Delabrouille <timothee.delabrouille@musicworldmedia.com> | 2021-04-25 18:17:11 +0200 |
|---|---|---|
| committer | Timothée Delabrouille <timothee.delabrouille@musicworldmedia.com> | 2021-04-27 10:29:58 +0200 |
| commit | 727f9040aac16dfa5a27687f6f49b7cd5b98a2cc (patch) | |
| tree | a2e1264f50e4c6bc6e626ad3371a62f624197ef4 /src/librustdoc/html/render | |
| parent | b4f1dfd2c57985a4cbb74fb34073ba04fd6f5f63 (diff) | |
| download | rust-727f9040aac16dfa5a27687f6f49b7cd5b98a2cc.tar.gz rust-727f9040aac16dfa5a27687f6f49b7cd5b98a2cc.zip | |
cfg taken out of Attributes, put in Item
check item.is_fake() instead of self_id.is_some() Remove empty branching in Attributes::from_ast diverse small refacto after Josha review cfg computation moved in merge_attrs refacto use from_ast twice for coherence take cfg out of Attributes and move it to Item
Diffstat (limited to 'src/librustdoc/html/render')
| -rw-r--r-- | src/librustdoc/html/render/cache.rs | 3 | ||||
| -rw-r--r-- | src/librustdoc/html/render/mod.rs | 9 | ||||
| -rw-r--r-- | src/librustdoc/html/render/print_item.rs | 15 |
3 files changed, 10 insertions, 17 deletions
diff --git a/src/librustdoc/html/render/cache.rs b/src/librustdoc/html/render/cache.rs index d1aa6fba463..f4296a04e59 100644 --- a/src/librustdoc/html/render/cache.rs +++ b/src/librustdoc/html/render/cache.rs @@ -9,8 +9,7 @@ use serde::ser::{Serialize, SerializeStruct, Serializer}; use crate::clean; use crate::clean::types::{ - AttributesExt, FnDecl, FnRetTy, GenericBound, Generics, GetDefId, Type, TypeKind, - WherePredicate, + AttributesExt, FnDecl, FnRetTy, GenericBound, Generics, GetDefId, Type, WherePredicate, }; use crate::formats::cache::Cache; use crate::formats::item_type::ItemType; diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index 67ccf2137bf..248bd46da85 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -608,17 +608,12 @@ fn document_item_info( } fn portability(item: &clean::Item, parent: Option<&clean::Item>) -> Option<String> { - let cfg = match (&item.attrs.cfg, parent.and_then(|p| p.attrs.cfg.as_ref())) { + let cfg = match (&item.cfg, parent.and_then(|p| p.cfg.as_ref())) { (Some(cfg), Some(parent_cfg)) => cfg.simplify_with(parent_cfg), (cfg, _) => cfg.as_deref().cloned(), }; - debug!( - "Portability {:?} - {:?} = {:?}", - item.attrs.cfg, - parent.and_then(|p| p.attrs.cfg.as_ref()), - cfg - ); + debug!("Portability {:?} - {:?} = {:?}", item.cfg, parent.and_then(|p| p.cfg.as_ref()), cfg); Some(format!("<div class=\"stab portability\">{}</div>", cfg?.render_long_html())) } diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs index f1d79ab097b..1bb1db00e88 100644 --- a/src/librustdoc/html/render/print_item.rs +++ b/src/librustdoc/html/render/print_item.rs @@ -1,10 +1,11 @@ +use clean::AttributesExt; + use std::cmp::Ordering; 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; @@ -284,16 +285,14 @@ fn item_module(w: &mut Buffer, cx: &Context<'_>, item: &clean::Item, items: &[cl clean::ImportItem(ref import) => { 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, - )); + let ast_attrs = cx.tcx().get_attrs(import_def_id); + let import_attrs = Box::new(clean::Attributes::from_ast(ast_attrs, None)); // Just need an item with the correct def_id and attrs let import_item = clean::Item { def_id: import_def_id, attrs: import_attrs, + cfg: ast_attrs.cfg(cx.tcx().sess.diagnostic()), ..myitem.clone() }; @@ -400,12 +399,12 @@ fn extra_info_tags(item: &clean::Item, parent: &clean::Item, tcx: TyCtxt<'_>) -> tags += &tag_html("unstable", "", "Experimental"); } - let cfg = match (&item.attrs.cfg, parent.attrs.cfg.as_ref()) { + let cfg = match (&item.cfg, parent.cfg.as_ref()) { (Some(cfg), Some(parent_cfg)) => cfg.simplify_with(parent_cfg), (cfg, _) => cfg.as_deref().cloned(), }; - debug!("Portability {:?} - {:?} = {:?}", item.attrs.cfg, parent.attrs.cfg, cfg); + debug!("Portability {:?} - {:?} = {:?}", item.cfg, parent.cfg, cfg); if let Some(ref cfg) = cfg { tags += &tag_html("portability", &cfg.render_long_plain(), &cfg.render_short_html()); } |
