diff options
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 4 | ||||
| -rw-r--r-- | src/librustdoc/doctree.rs | 52 | ||||
| -rw-r--r-- | src/librustdoc/visit_ast.rs | 109 |
3 files changed, 18 insertions, 147 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 05c1d7a0d99..9d84089eb40 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -2280,7 +2280,7 @@ impl Clean<Item> for doctree::ForeignItem<'_> { } } -impl Clean<Item> for doctree::Macro<'_> { +impl Clean<Item> for doctree::Macro { fn clean(&self, cx: &DocContext<'_>) -> Item { Item::from_def_id_and_parts( self.def_id, @@ -2301,7 +2301,7 @@ impl Clean<Item> for doctree::Macro<'_> { } } -impl Clean<Item> for doctree::ProcMacro<'_> { +impl Clean<Item> for doctree::ProcMacro { fn clean(&self, cx: &DocContext<'_>) -> Item { Item::from_hir_id_and_parts( self.id, diff --git a/src/librustdoc/doctree.rs b/src/librustdoc/doctree.rs index a80ac1e72fc..bd926219135 100644 --- a/src/librustdoc/doctree.rs +++ b/src/librustdoc/doctree.rs @@ -28,25 +28,19 @@ crate struct Module<'hir> { crate statics: Vec<Static<'hir>>, crate constants: Vec<Constant<'hir>>, crate traits: Vec<Trait<'hir>>, - crate vis: &'hir hir::Visibility<'hir>, crate impls: Vec<Impl<'hir>>, crate foreigns: Vec<ForeignItem<'hir>>, - crate macros: Vec<Macro<'hir>>, - crate proc_macros: Vec<ProcMacro<'hir>>, + crate macros: Vec<Macro>, + crate proc_macros: Vec<ProcMacro>, crate trait_aliases: Vec<TraitAlias<'hir>>, crate is_crate: bool, } impl Module<'hir> { - crate fn new( - name: Option<Symbol>, - attrs: &'hir [ast::Attribute], - vis: &'hir hir::Visibility<'hir>, - ) -> Module<'hir> { + crate fn new(name: Option<Symbol>, attrs: &'hir [ast::Attribute]) -> Module<'hir> { Module { name, id: hir::CRATE_HIR_ID, - vis, where_outer: rustc_span::DUMMY_SP, where_inner: rustc_span::DUMMY_SP, attrs, @@ -83,53 +77,39 @@ crate enum StructType { } crate struct Struct<'hir> { - crate vis: &'hir hir::Visibility<'hir>, crate id: hir::HirId, crate struct_type: StructType, crate name: Symbol, crate generics: &'hir hir::Generics<'hir>, - crate attrs: &'hir [ast::Attribute], crate fields: &'hir [hir::StructField<'hir>], - crate span: Span, } crate struct Union<'hir> { - crate vis: &'hir hir::Visibility<'hir>, crate id: hir::HirId, crate struct_type: StructType, crate name: Symbol, crate generics: &'hir hir::Generics<'hir>, - crate attrs: &'hir [ast::Attribute], crate fields: &'hir [hir::StructField<'hir>], - crate span: Span, } crate struct Enum<'hir> { - crate vis: &'hir hir::Visibility<'hir>, crate variants: Vec<Variant<'hir>>, crate generics: &'hir hir::Generics<'hir>, - crate attrs: &'hir [ast::Attribute], crate id: hir::HirId, - crate span: Span, crate name: Symbol, } crate struct Variant<'hir> { crate name: Symbol, crate id: hir::HirId, - crate attrs: &'hir [ast::Attribute], crate def: &'hir hir::VariantData<'hir>, - crate span: Span, } crate struct Function<'hir> { crate decl: &'hir hir::FnDecl<'hir>, - crate attrs: &'hir [ast::Attribute], crate id: hir::HirId, crate name: Symbol, - crate vis: &'hir hir::Visibility<'hir>, crate header: hir::FnHeader, - crate span: Span, crate generics: &'hir hir::Generics<'hir>, crate body: hir::BodyId, } @@ -139,18 +119,12 @@ crate struct Typedef<'hir> { crate gen: &'hir hir::Generics<'hir>, crate name: Symbol, crate id: hir::HirId, - crate attrs: &'hir [ast::Attribute], - crate span: Span, - crate vis: &'hir hir::Visibility<'hir>, } crate struct OpaqueTy<'hir> { crate opaque_ty: &'hir hir::OpaqueTy<'hir>, crate name: Symbol, crate id: hir::HirId, - crate attrs: &'hir [ast::Attribute], - crate span: Span, - crate vis: &'hir hir::Visibility<'hir>, } #[derive(Debug)] @@ -169,10 +143,7 @@ crate struct Constant<'hir> { crate type_: &'hir hir::Ty<'hir>, crate expr: hir::BodyId, crate name: Symbol, - crate attrs: &'hir [ast::Attribute], - crate vis: &'hir hir::Visibility<'hir>, crate id: hir::HirId, - crate span: Span, } crate struct Trait<'hir> { @@ -184,18 +155,13 @@ crate struct Trait<'hir> { crate bounds: &'hir [hir::GenericBound<'hir>], crate attrs: &'hir [ast::Attribute], crate id: hir::HirId, - crate span: Span, - crate vis: &'hir hir::Visibility<'hir>, } crate struct TraitAlias<'hir> { crate name: Symbol, crate generics: &'hir hir::Generics<'hir>, crate bounds: &'hir [hir::GenericBound<'hir>], - crate attrs: &'hir [ast::Attribute], crate id: hir::HirId, - crate span: Span, - crate vis: &'hir hir::Visibility<'hir>, } #[derive(Debug)] @@ -215,22 +181,16 @@ crate struct Impl<'hir> { } crate struct ForeignItem<'hir> { - crate vis: &'hir hir::Visibility<'hir>, crate id: hir::HirId, crate name: Symbol, crate kind: &'hir hir::ForeignItemKind<'hir>, - crate attrs: &'hir [ast::Attribute], - crate span: Span, } // For Macro we store the DefId instead of the NodeId, since we also create // these imported macro_rules (which only have a DUMMY_NODE_ID). -crate struct Macro<'hir> { +crate struct Macro { crate name: Symbol, - crate hid: hir::HirId, crate def_id: hir::def_id::DefId, - crate attrs: &'hir [ast::Attribute], - crate span: Span, crate matchers: Vec<Span>, crate imported_from: Option<Symbol>, } @@ -256,13 +216,11 @@ crate struct Import<'hir> { crate span: Span, } -crate struct ProcMacro<'hir> { +crate struct ProcMacro { crate name: Symbol, crate id: hir::HirId, crate kind: MacroKind, crate helpers: Vec<Symbol>, - crate attrs: &'hir [ast::Attribute], - crate span: Span, } crate fn struct_type_from_def(vdata: &hir::VariantData<'_>) -> StructType { diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index 509cc47caf8..76fae112918 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -91,16 +91,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { ) -> Struct<'tcx> { debug!("visiting struct"); let struct_type = struct_type_from_def(&*sd); - Struct { - id: item.hir_id, - struct_type, - name, - vis: &item.vis, - attrs: &item.attrs, - generics, - fields: sd.fields(), - span: item.span, - } + Struct { id: item.hir_id, struct_type, name, generics, fields: sd.fields() } } fn visit_union_data( @@ -112,16 +103,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { ) -> Union<'tcx> { debug!("visiting union"); let struct_type = struct_type_from_def(&*sd); - Union { - id: item.hir_id, - struct_type, - name, - vis: &item.vis, - attrs: &item.attrs, - generics, - fields: sd.fields(), - span: item.span, - } + Union { id: item.hir_id, struct_type, name, generics, fields: sd.fields() } } fn visit_enum_def( @@ -137,19 +119,10 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { variants: def .variants .iter() - .map(|v| Variant { - name: v.ident.name, - id: v.id, - attrs: &v.attrs, - def: &v.data, - span: v.span, - }) + .map(|v| Variant { name: v.ident.name, id: v.id, def: &v.data }) .collect(), - vis: &it.vis, generics, - attrs: &it.attrs, id: it.hir_id, - span: it.span, } } @@ -202,27 +175,10 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { } } - om.proc_macros.push(ProcMacro { - name, - id: item.hir_id, - kind, - helpers, - attrs: &item.attrs, - span: item.span, - }); + om.proc_macros.push(ProcMacro { name, id: item.hir_id, kind, helpers }); } None => { - om.fns.push(Function { - id: item.hir_id, - vis: &item.vis, - attrs: &item.attrs, - decl, - name, - span: item.span, - generics, - header, - body, - }); + om.fns.push(Function { id: item.hir_id, decl, name, generics, header, body }); } } } @@ -236,7 +192,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { m: &'tcx hir::Mod<'tcx>, name: Option<Symbol>, ) -> Module<'tcx> { - let mut om = Module::new(name, attrs, vis); + let mut om = Module::new(name, attrs); om.where_outer = span; om.where_inner = m.inner; om.id = id; @@ -471,26 +427,11 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { self.visit_fn(om, item, ident.name, &sig.decl, sig.header, gen, body) } hir::ItemKind::TyAlias(ty, ref gen) => { - let t = Typedef { - ty, - gen, - name: ident.name, - id: item.hir_id, - attrs: &item.attrs, - span: item.span, - vis: &item.vis, - }; + let t = Typedef { ty, gen, name: ident.name, id: item.hir_id }; om.typedefs.push(t); } hir::ItemKind::OpaqueTy(ref opaque_ty) => { - let t = OpaqueTy { - opaque_ty, - name: ident.name, - id: item.hir_id, - attrs: &item.attrs, - span: item.span, - vis: &item.vis, - }; + let t = OpaqueTy { opaque_ty, name: ident.name, id: item.hir_id }; om.opaque_tys.push(t); } hir::ItemKind::Static(type_, mutability, expr) => { @@ -510,15 +451,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { // Underscore constants do not correspond to a nameable item and // so are never useful in documentation. if ident.name != kw::Underscore { - let s = Constant { - type_, - expr, - id: item.hir_id, - name: ident.name, - attrs: &item.attrs, - span: item.span, - vis: &item.vis, - }; + let s = Constant { type_, expr, id: item.hir_id, name: ident.name }; om.constants.push(s); } } @@ -533,21 +466,11 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { bounds, id: item.hir_id, attrs: &item.attrs, - span: item.span, - vis: &item.vis, }; om.traits.push(t); } hir::ItemKind::TraitAlias(ref generics, ref bounds) => { - let t = TraitAlias { - name: ident.name, - generics, - bounds, - id: item.hir_id, - attrs: &item.attrs, - span: item.span, - vis: &item.vis, - }; + let t = TraitAlias { name: ident.name, generics, bounds, id: item.hir_id }; om.trait_aliases.push(t); } @@ -602,29 +525,19 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { id: item.hir_id, name: renamed.unwrap_or(item.ident).name, kind: &item.kind, - vis: &item.vis, - attrs: &item.attrs, - span: item.span, }); } // Convert each `exported_macro` into a doc item. - fn visit_local_macro( - &self, - def: &'tcx hir::MacroDef<'_>, - renamed: Option<Symbol>, - ) -> Macro<'tcx> { + fn visit_local_macro(&self, def: &'tcx hir::MacroDef<'_>, renamed: Option<Symbol>) -> Macro { debug!("visit_local_macro: {}", def.ident); let tts = def.ast.body.inner_tokens().trees().collect::<Vec<_>>(); // Extract the spans of all matchers. They represent the "interface" of the macro. let matchers = tts.chunks(4).map(|arm| arm[0].span()).collect(); Macro { - hid: def.hir_id, def_id: self.cx.tcx.hir().local_def_id(def.hir_id).to_def_id(), - attrs: &def.attrs, name: renamed.unwrap_or(def.ident.name), - span: def.span, matchers, imported_from: None, } |
