Commit fcee002
committed
break enum variant discriminant inference in case of 32-bit
`assert_eq!(-9223372036854775808isize as u64, 0x8000000000000000);`
fails on 32 bit and succeeds on 64 bit. These commits don't change that behavior.
The following worked before my changes, because the discriminant was
always processed as `u64`.
Now it fails, because the discriminant of `Bu64` is now `0` instead of `-9223372036854775808`. This is more in line with the above assertion's code, since
`-9223372036854775808isize as u64` on 32 bit yielded `0`.
```rust
enum Eu64 {
Au64 = 0,
Bu64 = 0x8000_0000_0000_0000
}
```1 parent d4d6260 commit fcee002
1 file changed
+4
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | 50 | | |
55 | 51 | | |
56 | 52 | | |
57 | 53 | | |
58 | 54 | | |
59 | 55 | | |
60 | 56 | | |
| 57 | + | |
61 | 58 | | |
62 | | - | |
| 59 | + | |
| 60 | + | |
63 | 61 | | |
0 commit comments