--- /dev/null
+error[E0308]: mismatched types
+ --> $DIR/issue-67945-1.rs:3:20
+ |
+LL | enum Bug<S> {
+ | - this type parameter
+LL | Var = {
+LL | let x: S = 0;
+ | - ^ expected type parameter `S`, found integer
+ | |
+ | expected due to this
+ |
+ = note: expected type parameter `S`
+ found type `{integer}`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
--- /dev/null
+error[E0308]: mismatched types
+ --> $DIR/issue-67945-2.rs:4:11
+ |
+LL | enum Bug<S> {
+ | - this type parameter
+LL | Var = 0: S,
+ | ^ expected type parameter `S`, found integer
+ |
+ = note: expected type parameter `S`
+ found type `{integer}`
+
+error[E0308]: mismatched types
+ --> $DIR/issue-67945-2.rs:4:11
+ |
+LL | enum Bug<S> {
+ | - this type parameter
+LL | Var = 0: S,
+ | ^^^^ expected `isize`, found type parameter `S`
+ |
+ = note: expected type `isize`
+ found type parameter `S`
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.