about summary refs log tree commit diff
path: root/tests/rustdoc
diff options
context:
space:
mode:
authorEval EXEC <execvy@gmail.com>2025-08-10 23:02:53 +0800
committerEval EXEC <execvy@gmail.com>2025-08-10 23:02:53 +0800
commitde13718c66965852ba8970781908fa1eda9a54b9 (patch)
tree2672a499d6efc2a91981c699f39261d95d0587a8 /tests/rustdoc
parent7f7b8ef27d86c865a7ab20c7c42f50811c6a914d (diff)
downloadrust-de13718c66965852ba8970781908fa1eda9a54b9.tar.gz
rust-de13718c66965852ba8970781908fa1eda9a54b9.zip
test: Add rustdoc test for enum negative overflow
Diffstat (limited to 'tests/rustdoc')
-rw-r--r--tests/rustdoc/enum/enum-variant-value.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/rustdoc/enum/enum-variant-value.rs b/tests/rustdoc/enum/enum-variant-value.rs
index 1670de8a24f..9cc85dfe10d 100644
--- a/tests/rustdoc/enum/enum-variant-value.rs
+++ b/tests/rustdoc/enum/enum-variant-value.rs
@@ -189,3 +189,25 @@ pub use bar::P;
 //@ has - '//*[@id="variant.A"]/h3' 'A(u32)'
 //@ matches - '//*[@id="variant.B"]/h3' '^B$'
 pub use bar::Q;
+
+// Ensure signed implicit discriminants are rendered correctly after a negative explicit value.
+//@ has 'foo/enum.R.html'
+//@ has - '//*[@class="rust item-decl"]/code' 'A = -2,'
+//@ has - '//*[@class="rust item-decl"]/code' 'B = -1,'
+//@ matches - '//*[@id="variant.A"]/h3' '^A = -2$'
+//@ matches - '//*[@id="variant.B"]/h3' '^B = -1$'
+pub enum R {
+    A = -2,
+    B,
+}
+
+// Also check that incrementing -1 yields 0 for the next implicit variant.
+//@ has 'foo/enum.S.html'
+//@ has - '//*[@class="rust item-decl"]/code' 'A = -1,'
+//@ has - '//*[@class="rust item-decl"]/code' 'B = 0,'
+//@ matches - '//*[@id="variant.A"]/h3' '^A = -1$'
+//@ matches - '//*[@id="variant.B"]/h3' '^B = 0$'
+pub enum S {
+    A = -1,
+    B,
+}