about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/enum/issue-67945-1.rs8
-rw-r--r--src/test/ui/enum/issue-67945-1.stderr17
-rw-r--r--src/test/ui/enum/issue-67945-2.rs9
-rw-r--r--src/test/ui/enum/issue-67945-2.stderr25
4 files changed, 59 insertions, 0 deletions
diff --git a/src/test/ui/enum/issue-67945-1.rs b/src/test/ui/enum/issue-67945-1.rs
new file mode 100644
index 00000000000..7977bddae7b
--- /dev/null
+++ b/src/test/ui/enum/issue-67945-1.rs
@@ -0,0 +1,8 @@
+enum Bug<S> {
+    Var = {
+        let x: S = 0; //~ ERROR: mismatched types
+        0
+    },
+}
+
+fn main() {}
diff --git a/src/test/ui/enum/issue-67945-1.stderr b/src/test/ui/enum/issue-67945-1.stderr
new file mode 100644
index 00000000000..6583fe13d0c
--- /dev/null
+++ b/src/test/ui/enum/issue-67945-1.stderr
@@ -0,0 +1,17 @@
+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`.
diff --git a/src/test/ui/enum/issue-67945-2.rs b/src/test/ui/enum/issue-67945-2.rs
new file mode 100644
index 00000000000..16bd8530ab3
--- /dev/null
+++ b/src/test/ui/enum/issue-67945-2.rs
@@ -0,0 +1,9 @@
+#![feature(type_ascription)]
+
+enum Bug<S> {
+    Var = 0: S,
+    //~^ ERROR: mismatched types
+    //~| ERROR: mismatched types
+}
+
+fn main() {}
diff --git a/src/test/ui/enum/issue-67945-2.stderr b/src/test/ui/enum/issue-67945-2.stderr
new file mode 100644
index 00000000000..c40506d59ed
--- /dev/null
+++ b/src/test/ui/enum/issue-67945-2.stderr
@@ -0,0 +1,25 @@
+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`.