Compute enum discriminant during parsing

This allows us to reuse the computation in multiple places later.
diff --git a/tests/ui/enum_overflows.stderr b/tests/ui/enum_overflows.stderr
index 3d1b370..1a22146 100644
--- a/tests/ui/enum_overflows.stderr
+++ b/tests/ui/enum_overflows.stderr
@@ -1,9 +1,5 @@
-error: overflowed on value after 4294967295
-  --> $DIR/enum_overflows.rs:10:5
+error: overflowed on value
+  --> $DIR/enum_overflows.rs:13:9
    |
-10 | /     enum Bad {
-11 | |         D = 0xfffffffe,
-12 | |         E,
-13 | |         F,
-14 | |     }
-   | |_____^
+13 |         F,
+   |         ^