about summary refs log tree commit diff
diff options
context:
space:
mode:
authorObei Sideg <obei.sideg@gmail.com>2022-12-30 17:51:42 +0300
committerObei Sideg <obei.sideg@gmail.com>2022-12-30 23:08:15 +0300
commita74a48852a50628b8de61ad5534f4eb3d31ecc6e (patch)
tree68d9a8f9360cc36a72ddef996258b9187e461862
parentcc1dee148d7fb41897ab7c05d3e99ab6e65be731 (diff)
downloadrust-a74a48852a50628b8de61ad5534f4eb3d31ecc6e.tar.gz
rust-a74a48852a50628b8de61ad5534f4eb3d31ecc6e.zip
Add ui test for #106182
-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`.