From 309e5432adb0156f8e23d07b27ecb2197eeed59b Mon Sep 17 00:00:00 2001 From: Jack Wrenn Date: Sat, 14 Mar 2026 14:25:27 +0000 Subject: [PATCH] [codegen] Break build dependency between tests and lib Since codegen test artifacts are rendered in crate documentation, changes to those artifacts place the crate source in a dirty state. This effectively serializes codegen blessing, since cargo must rebuild `zerocopy` between each test. We correct this by stubbing out `codegen_section!` when `cfg(not(doc))`. Makes progress towards #3079. gherrit-pr-id: Gcf771ba083fd307e788ceb72bc09085177a48ca8 --- src/util/macros.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/util/macros.rs b/src/util/macros.rs index 59fd2549d9..7dca5410c8 100644 --- a/src/util/macros.rs +++ b/src/util/macros.rs @@ -982,8 +982,37 @@ macro_rules! codegen_preamble { } } +/// Stub for rendering codegen documentation; used to break build dependency +/// between benches and zerocopy when re-blessing codegen tests. +#[allow(unused)] +#[cfg(not(doc))] +macro_rules! codegen_section { + ( + header = $level:expr, + bench = $bench:expr, + format = $format:expr, + arity = $arity:literal, + $([ + $($open:ident)? + @index $index:literal + @title $title:literal + @variant $variant:literal + ]),* + ) => { + "" + }; + ( + header = $level:expr, + bench = $bench:expr, + format = $format:expr, + ) => { + "" + }; +} + /// Generates the HTML for code generation documentation. #[allow(unused)] +#[cfg(doc)] macro_rules! codegen_section { ( header = $level:expr,