diff options
Diffstat (limited to 'src/librustdoc/clean')
| -rw-r--r-- | src/librustdoc/clean/inline.rs | 18 | ||||
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 11 | ||||
| -rw-r--r-- | src/librustdoc/clean/types.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/clean/utils.rs | 15 |
4 files changed, 14 insertions, 32 deletions
diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index 97529e420e3..5ddd6188c2d 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -134,11 +134,7 @@ pub(crate) fn try_inline( }) } Res::Def(DefKind::Macro(kind), did) => { - let is_doc_hidden = cx.tcx.is_doc_hidden(did) - || attrs_without_docs - .map(|(attrs, _)| attrs) - .is_some_and(|attrs| utils::attrs_have_doc_flag(attrs.iter(), sym::hidden)); - let mac = build_macro(cx, did, name, import_def_id, kind, is_doc_hidden); + let mac = build_macro(cx, did, name, kind); let type_kind = match kind { MacroKind::Bang => ItemType::Macro, @@ -740,18 +736,14 @@ fn build_macro( cx: &mut DocContext<'_>, def_id: DefId, name: Symbol, - import_def_id: Option<LocalDefId>, macro_kind: MacroKind, - is_doc_hidden: bool, ) -> clean::ItemKind { match CStore::from_tcx(cx.tcx).load_macro_untracked(def_id, cx.tcx) { LoadedMacro::MacroDef { def, .. } => match macro_kind { - MacroKind::Bang => { - let vis = cx.tcx.visibility(import_def_id.map(|d| d.to_def_id()).unwrap_or(def_id)); - clean::MacroItem(clean::Macro { - source: utils::display_macro_source(cx, name, &def, def_id, vis, is_doc_hidden), - }) - } + MacroKind::Bang => clean::MacroItem(clean::Macro { + source: utils::display_macro_source(cx, name, &def), + macro_rules: def.macro_rules, + }), MacroKind::Derive | MacroKind::Attr => { clean::ProcMacroItem(clean::ProcMacro { kind: macro_kind, helpers: Vec::new() }) } diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 15f75384b89..9e11360cab4 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -2787,13 +2787,10 @@ fn clean_maybe_renamed_item<'tcx>( fields: variant_data.fields().iter().map(|x| clean_field(x, cx)).collect(), }), ItemKind::Impl(impl_) => return clean_impl(impl_, item.owner_id.def_id, cx), - ItemKind::Macro(macro_def, MacroKind::Bang) => { - let ty_vis = cx.tcx.visibility(def_id); - MacroItem(Macro { - // FIXME this shouldn't be false - source: display_macro_source(cx, name, macro_def, def_id, ty_vis, false), - }) - } + ItemKind::Macro(macro_def, MacroKind::Bang) => MacroItem(Macro { + source: display_macro_source(cx, name, macro_def), + macro_rules: macro_def.macro_rules, + }), ItemKind::Macro(_, macro_kind) => clean_proc_macro(item, &mut name, macro_kind, cx), // proc macros can have a name set by attributes ItemKind::Fn(ref sig, generics, body_id) => { diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs index e5c9539b5e7..e3a0dbe1a7f 100644 --- a/src/librustdoc/clean/types.rs +++ b/src/librustdoc/clean/types.rs @@ -2543,6 +2543,8 @@ pub(crate) struct ImportSource { #[derive(Clone, Debug)] pub(crate) struct Macro { pub(crate) source: String, + /// Whether the macro was defined via `macro_rules!` as opposed to `macro`. + pub(crate) macro_rules: bool, } #[derive(Clone, Debug)] diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index ec41ad0e8e3..e551e0170c6 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -24,7 +24,6 @@ use crate::clean::{ clean_middle_ty, inline, }; use crate::core::DocContext; -use crate::html::format::visibility_to_src_with_space; #[cfg(test)] mod tests; @@ -593,7 +592,7 @@ pub(crate) static DOC_CHANNEL: Lazy<&'static str> = /// Render a sequence of macro arms in a format suitable for displaying to the user /// as part of an item declaration. -pub(super) fn render_macro_arms<'a>( +fn render_macro_arms<'a>( tcx: TyCtxt<'_>, matchers: impl Iterator<Item = &'a TokenTree>, arm_delim: &str, @@ -614,9 +613,6 @@ pub(super) fn display_macro_source( cx: &mut DocContext<'_>, name: Symbol, def: &ast::MacroDef, - def_id: DefId, - vis: ty::Visibility<DefId>, - is_doc_hidden: bool, ) -> String { // Extract the spans of all matchers. They represent the "interface" of the macro. let matchers = def.body.tokens.chunks(4).map(|arm| &arm[0]); @@ -626,18 +622,13 @@ pub(super) fn display_macro_source( } else { if matchers.len() <= 1 { format!( - "{vis}macro {name}{matchers} {{\n ...\n}}", - vis = visibility_to_src_with_space(Some(vis), cx.tcx, def_id, is_doc_hidden), + "macro {name}{matchers} {{\n ...\n}}", matchers = matchers .map(|matcher| render_macro_matcher(cx.tcx, matcher)) .collect::<String>(), ) } else { - format!( - "{vis}macro {name} {{\n{arms}}}", - vis = visibility_to_src_with_space(Some(vis), cx.tcx, def_id, is_doc_hidden), - arms = render_macro_arms(cx.tcx, matchers, ","), - ) + format!("macro {name} {{\n{arms}}}", arms = render_macro_arms(cx.tcx, matchers, ",")) } } } |
