summaryrefslogtreecommitdiffstats
path: root/tests/ui/issues/auxiliary
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/issues/auxiliary')
-rw-r--r--tests/ui/issues/auxiliary/issue-111011.rs12
-rw-r--r--tests/ui/issues/auxiliary/issue-111011.stderr34
-rw-r--r--tests/ui/issues/auxiliary/issue-3136-a.rc4
-rw-r--r--tests/ui/issues/auxiliary/issue-3136-a.rs7
-rw-r--r--tests/ui/issues/auxiliary/issue-41394.rs16
5 files changed, 51 insertions, 22 deletions
diff --git a/tests/ui/issues/auxiliary/issue-111011.rs b/tests/ui/issues/auxiliary/issue-111011.rs
new file mode 100644
index 000000000..927134a58
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-111011.rs
@@ -0,0 +1,12 @@
+#![feature(async_closure)]
+
+// edition:2021
+
+fn foo<X>(x: impl FnOnce() -> Box<X>) {}
+// just to make sure async closures can still be suggested for boxing.
+fn bar<X>(x: Box<dyn FnOnce() -> X>) {}
+
+fn main() {
+ foo(async move || {}); //~ ERROR mismatched types
+ bar(async move || {}); //~ ERROR mismatched types
+}
diff --git a/tests/ui/issues/auxiliary/issue-111011.stderr b/tests/ui/issues/auxiliary/issue-111011.stderr
new file mode 100644
index 000000000..082f0f035
--- /dev/null
+++ b/tests/ui/issues/auxiliary/issue-111011.stderr
@@ -0,0 +1,34 @@
+error[E0308]: mismatched types
+ --> $DIR/issue-111011.rs:10:23
+ |
+LL | foo(async move || {});
+ | ^^ expected `Box<_>`, found `async` closure body
+ |
+ = note: expected struct `Box<_>`
+ found `async` closure body `[async closure body@$DIR/issue-111011.rs:10:23: 10:25]`
+ = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
+
+error[E0308]: mismatched types
+ --> $DIR/issue-111011.rs:11:9
+ |
+LL | bar(async move || {});
+ | --- ^^^^^^^^^^^^^^^^ expected `Box<dyn FnOnce() -> _>`, found closure
+ | |
+ | arguments to this function are incorrect
+ |
+ = note: expected struct `Box<(dyn FnOnce() -> _ + 'static)>`
+ found closure `[closure@$DIR/issue-111011.rs:11:9: 11:22]`
+ = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
+note: function defined here
+ --> $DIR/issue-111011.rs:7:4
+ |
+LL | fn bar<X>(x: Box<dyn FnOnce() -> X>) {}
+ | ^^^ -------------------------
+help: store this in the heap by calling `Box::new`
+ |
+LL | bar(Box::new(async move || {}));
+ | +++++++++ +
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/issues/auxiliary/issue-3136-a.rc b/tests/ui/issues/auxiliary/issue-3136-a.rc
deleted file mode 100644
index cd5fd3145..000000000
--- a/tests/ui/issues/auxiliary/issue-3136-a.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-#![crate_type = "lib"]
-
-#[path = "issue-3136-a.rs"]
-pub mod issue_3136_a;
diff --git a/tests/ui/issues/auxiliary/issue-3136-a.rs b/tests/ui/issues/auxiliary/issue-3136-a.rs
index 9bb546ab3..22bb1c8f9 100644
--- a/tests/ui/issues/auxiliary/issue-3136-a.rs
+++ b/tests/ui/issues/auxiliary/issue-3136-a.rs
@@ -1,11 +1,14 @@
+#![crate_type = "lib"]
+
trait x {
fn use_x<T>(&self);
}
struct y(());
impl x for y {
fn use_x<T>(&self) {
- struct foo { //~ ERROR quux
- i: ()
+ struct foo {
+ //~ ERROR quux
+ i: (),
}
fn new_foo<T>(i: ()) -> foo {
foo { i: i }
diff --git a/tests/ui/issues/auxiliary/issue-41394.rs b/tests/ui/issues/auxiliary/issue-41394.rs
deleted file mode 100644
index 2e650efc7..000000000
--- a/tests/ui/issues/auxiliary/issue-41394.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-#![crate_type = "lib"]
-
-#[repr(u32)]
-pub enum Foo {
- Foo = Private::Variant as u32
-}
-
-#[repr(u8)]
-enum Private {
- Variant = 42
-}
-
-#[inline(always)]
-pub fn foo() -> Foo {
- Foo::Foo
-}