Skip to content

Commit da44a8b

Browse files
committed
moe newtype constructor
1 parent 53daf12 commit da44a8b

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

bindgen/codegen/mod.rs

+12-11
Original file line numberDiff line numberDiff line change
@@ -3521,20 +3521,11 @@ impl EnumBuilder {
35213521
None => variant_name,
35223522
})
35233523
};
3524-
// Wrapping the unwrap in the const block ensures we get
3525-
// a compile-time panic.
3526-
let value = if let Some(enum_ident) =
3527-
&self.result_error_enum_ident
3528-
{
3529-
quote! { #enum_ident ( const { core::num::NonZero::new(#expr).unwrap() } )}
3530-
} else {
3531-
quote! { #rust_ty ( #expr )}
3532-
};
35333524

35343525
enum_variants.push(EnumVariantInfo {
35353526
variant_name: variant_ident,
35363527
variant_doc,
3537-
value,
3528+
value: expr,
35383529
});
35393530

35403531
self
@@ -3627,10 +3618,20 @@ impl EnumBuilder {
36273618
for (variant_ident, variant_doc, variant_value) in
36283619
izip!(&variant_idents, &variant_docs, &variant_values)
36293620
{
3621+
let value = if let Some(enum_ident) =
3622+
&self.result_error_enum_ident
3623+
{
3624+
// Wrapping the unwrap in the const block ensures we get
3625+
// a compile-time panic.
3626+
quote! { #enum_ident ( const { core::num::NonZero::new(#variant_value).unwrap() } )}
3627+
} else {
3628+
quote! { #rust_ty(#variant_value) }
3629+
};
3630+
36303631
variants.push(quote! {
36313632
#variant_doc
36323633
#variant_guard
3633-
pub const #variant_ident: #enum_ident = #variant_value;
3634+
pub const #variant_ident: #enum_ident = #value;
36343635
});
36353636
}
36363637
variants

0 commit comments

Comments
 (0)