about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEval EXEC <execvy@gmail.com>2025-08-10 23:33:23 +0800
committerEval EXEC <execvy@gmail.com>2025-08-10 23:33:23 +0800
commit20a134f5f0fb5a68025143d0cd24cf4e4783819b (patch)
tree09eb3b51bf8f7653f770ea8d96c3ab14e7c0609c
parentde13718c66965852ba8970781908fa1eda9a54b9 (diff)
downloadrust-20a134f5f0fb5a68025143d0cd24cf4e4783819b.tar.gz
rust-20a134f5f0fb5a68025143d0cd24cf4e4783819b.zip
rustdoc: Use `discr`s `Display` impl to render the value with the correct signedness
-rw-r--r--src/librustdoc/html/render/print_item.rs8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs
index 02ee34aaac6..759f53974f5 100644
--- a/src/librustdoc/html/render/print_item.rs
+++ b/src/librustdoc/html/render/print_item.rs
@@ -1656,11 +1656,9 @@ fn display_c_like_variant(
         } else if should_show_enum_discriminant {
             let adt_def = cx.tcx().adt_def(enum_def_id);
             let discr = adt_def.discriminant_for_variant(cx.tcx(), index);
-            if discr.ty.is_signed() {
-                write!(w, "{} = {}", name.as_str(), discr.val as i128)?;
-            } else {
-                write!(w, "{} = {}", name.as_str(), discr.val)?;
-            }
+            // Use `discr`'s `Display` impl to render the value with the correct
+            // signedness, including proper sign-extension for signed types.
+            write!(w, "{} = {}", name.as_str(), discr)?;
         } else {
             write!(w, "{name}")?;
         }