]> git.lizzy.rs Git - rust.git/commitdiff
Add a regression test for #39137
authorBen Kimock <kimockb@gmail.com>
Sun, 9 Oct 2022 19:18:08 +0000 (15:18 -0400)
committerBen Kimock <kimockb@gmail.com>
Sun, 9 Oct 2022 19:18:08 +0000 (15:18 -0400)
src/test/ui/deriving/deriving-hash.rs

index 8b51370bca502e94ec9b2024e394b45cb96a3843..16738ec4ae4ec46b7469e48df203a4a5ddbb7d5d 100644 (file)
@@ -44,6 +44,17 @@ fn fake_hash<A: Hash>(v: &mut Vec<u8>, a: A) {
     a.hash(&mut FakeHasher(v));
 }
 
+struct OnlyOneByteHasher;
+impl Hasher for OnlyOneByteHasher {
+    fn finish(&self) -> u64 {
+        unreachable!()
+    }
+
+    fn write(&mut self, bytes: &[u8]) {
+        assert_eq!(bytes.len(), 1);
+    }
+}
+
 fn main() {
     let person1 = Person {
         id: 5,
@@ -73,4 +84,13 @@ enum SingleVariantEnum {
     let mut v = vec![];
     fake_hash(&mut v, SingleVariantEnum::A(17));
     assert_eq!(vec![17], v);
+
+    // issue #39137
+    #[repr(u8)]
+    #[derive(Hash)]
+    enum E {
+        A,
+        B,
+    }
+    E::A.hash(&mut OnlyOneByteHasher);
 }