From b80c52411ce1fd7a48765f608c9baa4150935f93 Mon Sep 17 00:00:00 2001 From: Dean Serenevy Date: Fri, 2 Oct 2026 15:03:07 -0400 Subject: [PATCH 1/2] fix: clippy::missing_docs_in_private_items triggering for `field` members --- .../src/builder/builder_gen/builder_decl.rs | 15 ++++++++++++--- bon-sandbox/src/docs_in_private_items.rs | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/bon-macros/src/builder/builder_gen/builder_decl.rs b/bon-macros/src/builder/builder_gen/builder_decl.rs index 474fae43..dc62efb6 100644 --- a/bon-macros/src/builder/builder_gen/builder_decl.rs +++ b/bon-macros/src/builder/builder_gen/builder_decl.rs @@ -70,8 +70,17 @@ impl super::BuilderGenCtx { let docs = &self.builder_type.docs; let state_var = &self.state_var; - let custom_fields_idents = self.custom_fields().map(|field| &field.ident); - let custom_fields_types = self.custom_fields().map(|field| &field.norm_ty); + let custom_fields = self.custom_fields().map(|field| { + let ident = &field.ident; + let ty = &field.norm_ty; + let doc = format!( + "Private builder field `{ident}` for use in custom methods.", + ); + quote! { + #[doc = #doc] + #ident: #ty + } + }); quote! { #[must_use = #must_use_message] @@ -109,7 +118,7 @@ impl super::BuilderGenCtx { #( #start_fn_args_fields, )* - #( #custom_fields_idents: #custom_fields_types, )* + #( #custom_fields, )* #private_field_attrs __unsafe_private_named: ( diff --git a/bon-sandbox/src/docs_in_private_items.rs b/bon-sandbox/src/docs_in_private_items.rs index d1ae5b7b..ba4fba36 100644 --- a/bon-sandbox/src/docs_in_private_items.rs +++ b/bon-sandbox/src/docs_in_private_items.rs @@ -11,6 +11,10 @@ struct ExampleStruct { #[builder(start_fn)] start_fn: u32, + /// Docs on `field` member + #[builder(field)] + field: u32, + /// Docs on `finish_fn` member #[builder(finish_fn)] finish_fn: u32, @@ -27,6 +31,10 @@ impl ExampleStruct { #[builder(start_fn)] start_fn: u32, + /// Docs on `field` member + #[builder(field)] + field: u32, + /// Docs on `finish_fn` member #[builder(finish_fn)] finish_fn: u32, @@ -35,6 +43,7 @@ impl ExampleStruct { regular: u32, ) { let _ = start_fn; + let _ = field; let _ = finish_fn; let _ = regular; } @@ -47,6 +56,10 @@ impl ExampleStruct { #[builder(start_fn)] start_fn: u32, + /// Docs on `field` member + #[builder(field)] + field: u32, + /// Docs on `finish_fn` member #[builder(finish_fn)] finish_fn: u32, @@ -56,6 +69,7 @@ impl ExampleStruct { ) { let _ = self; let _ = start_fn; + let _ = field; let _ = finish_fn; let _ = regular; } @@ -68,6 +82,10 @@ const fn example_function( #[builder(start_fn)] start_fn: u32, + /// Docs on `field` member + #[builder(field)] + field: u32, + /// Docs on `finish_fn` member #[builder(finish_fn)] finish_fn: u32, @@ -76,6 +94,7 @@ const fn example_function( regular: u32, ) { let _ = start_fn; + let _ = field; let _ = finish_fn; let _ = regular; } From d8b299552401a5cd0e53b50101dad2cdeecac80b Mon Sep 17 00:00:00 2001 From: Dean Serenevy Date: Fri, 2 Oct 2026 15:34:59 -0400 Subject: [PATCH 2/2] chore: run clippy fmt --- bon-macros/src/builder/builder_gen/builder_decl.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/bon-macros/src/builder/builder_gen/builder_decl.rs b/bon-macros/src/builder/builder_gen/builder_decl.rs index dc62efb6..f25c4256 100644 --- a/bon-macros/src/builder/builder_gen/builder_decl.rs +++ b/bon-macros/src/builder/builder_gen/builder_decl.rs @@ -73,9 +73,7 @@ impl super::BuilderGenCtx { let custom_fields = self.custom_fields().map(|field| { let ident = &field.ident; let ty = &field.norm_ty; - let doc = format!( - "Private builder field `{ident}` for use in custom methods.", - ); + let doc = format!("Private builder field `{ident}` for use in custom methods."); quote! { #[doc = #doc] #ident: #ty