Compute enum discriminant during parsing

This allows us to reuse the computation in multiple places later.
diff --git a/tests/ui/duplicate_enum_discriminants.stderr b/tests/ui/duplicate_enum_discriminants.stderr
index f5a879f..14505e3 100644
--- a/tests/ui/duplicate_enum_discriminants.stderr
+++ b/tests/ui/duplicate_enum_discriminants.stderr
@@ -1,18 +1,11 @@
 error: discriminant value `10` already exists
- --> $DIR/duplicate_enum_discriminants.rs:3:5
+ --> $DIR/duplicate_enum_discriminants.rs:5:9
   |
-3 | /     enum A {
-4 | |         V1 = 10,
-5 | |         V2 = 10,
-6 | |     }
-  | |_____^
+5 |         V2 = 10,
+  |         ^^^^^^^
 
 error: discriminant value `11` already exists
-  --> $DIR/duplicate_enum_discriminants.rs:8:5
+  --> $DIR/duplicate_enum_discriminants.rs:11:9
    |
-8  | /     enum B {
-9  | |         V1 = 10,
-10 | |         V2,
-11 | |         V3 = 11,
-12 | |     }
-   | |_____^
+11 |         V3 = 11,
+   |         ^^^^^^^
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,
+   |         ^