]> git.lizzy.rs Git - rust.git/commitdiff
Add regression test for #57404
authorYuki Okushi <jtitor@2k36.org>
Tue, 20 Dec 2022 09:52:30 +0000 (18:52 +0900)
committerYuki Okushi <jtitor@2k36.org>
Tue, 20 Dec 2022 09:52:30 +0000 (18:52 +0900)
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
src/test/ui/typeck/issue-57404.rs [new file with mode: 0644]
src/test/ui/typeck/issue-57404.stderr [new file with mode: 0644]

diff --git a/src/test/ui/typeck/issue-57404.rs b/src/test/ui/typeck/issue-57404.rs
new file mode 100644 (file)
index 0000000..ecabca6
--- /dev/null
@@ -0,0 +1,7 @@
+#![feature(unboxed_closures)]
+#![feature(fn_traits)]
+
+fn main() {
+    let handlers: Option<Box<dyn for<'a> FnMut<&'a mut (), Output=()>>> = None;
+    handlers.unwrap().as_mut().call_mut(&mut ()); //~ ERROR: `&mut ()` is not a tuple
+}
diff --git a/src/test/ui/typeck/issue-57404.stderr b/src/test/ui/typeck/issue-57404.stderr
new file mode 100644 (file)
index 0000000..5065ac3
--- /dev/null
@@ -0,0 +1,16 @@
+error[E0277]: `&mut ()` is not a tuple
+  --> $DIR/issue-57404.rs:6:41
+   |
+LL |     handlers.unwrap().as_mut().call_mut(&mut ());
+   |                                -------- -^^^^^^
+   |                                |        |
+   |                                |        the trait `Tuple` is not implemented for `&mut ()`
+   |                                |        help: consider removing the leading `&`-reference
+   |                                required by a bound introduced by this call
+   |
+note: required by a bound in `call_mut`
+  --> $SRC_DIR/core/src/ops/function.rs:LL:COL
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.