about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/mismatched_types/issue-106182.fixed14
-rw-r--r--src/test/ui/mismatched_types/issue-106182.rs14
-rw-r--r--src/test/ui/mismatched_types/issue-106182.stderr18
3 files changed, 46 insertions, 0 deletions
diff --git a/src/test/ui/mismatched_types/issue-106182.fixed b/src/test/ui/mismatched_types/issue-106182.fixed
new file mode 100644
index 00000000000..b8ddebf6fb6
--- /dev/null
+++ b/src/test/ui/mismatched_types/issue-106182.fixed
@@ -0,0 +1,14 @@
+// run-rustfix
+
+struct _S(u32, Vec<i32>);
+
+fn _foo(x: &_S) {
+    match x {
+        _S(mut _y, _v) => {
+        //~^ ERROR mismatched types [E0308]
+        }
+    }
+}
+
+fn main() {
+}
diff --git a/src/test/ui/mismatched_types/issue-106182.rs b/src/test/ui/mismatched_types/issue-106182.rs
new file mode 100644
index 00000000000..6eb6df13a02
--- /dev/null
+++ b/src/test/ui/mismatched_types/issue-106182.rs
@@ -0,0 +1,14 @@
+// run-rustfix
+
+struct _S(u32, Vec<i32>);
+
+fn _foo(x: &_S) {
+    match x {
+        _S(& (mut _y), _v) => {
+        //~^ ERROR mismatched types [E0308]
+        }
+    }
+}
+
+fn main() {
+}
diff --git a/src/test/ui/mismatched_types/issue-106182.stderr b/src/test/ui/mismatched_types/issue-106182.stderr
new file mode 100644
index 00000000000..ac3ab8e9895
--- /dev/null
+++ b/src/test/ui/mismatched_types/issue-106182.stderr
@@ -0,0 +1,18 @@
+error[E0308]: mismatched types
+  --> $DIR/issue-106182.rs:7:12
+   |
+LL |     match x {
+   |           - this expression has type `&_S`
+LL |         _S(& (mut _y), _v) => {
+   |            ^^^^^^^^^^ expected `u32`, found reference
+   |
+   = note:   expected type `u32`
+           found reference `&_`
+help: consider removing `&` from the pattern
+   |
+LL |         _S(mut _y, _v) => {
+   |            ~~~~~~
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.