about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-06-07 23:55:25 +0200
committerGitHub <noreply@github.com>2022-06-07 23:55:25 +0200
commit36e9cbc0be5382c9009512a7238b90bd196ca803 (patch)
tree44901bacf366a65751fa1cb97c79691e704429df
parent5435ed6916a59e8d5acba2149316a841c3905cbd (diff)
parent786c8b4419fbc8865e12343a6e7848b153d14e54 (diff)
downloadrust-36e9cbc0be5382c9009512a7238b90bd196ca803.tar.gz
rust-36e9cbc0be5382c9009512a7238b90bd196ca803.zip
Rollup merge of #97829 - JohnTitor:issue-95307, r=compiler-errors
Add regresion test for #95307

Closes #95307
r? `@compiler-errors`
-rw-r--r--src/test/ui/async-await/issues/issue-95307.rs13
-rw-r--r--src/test/ui/async-await/issues/issue-95307.stderr30
2 files changed, 43 insertions, 0 deletions
diff --git a/src/test/ui/async-await/issues/issue-95307.rs b/src/test/ui/async-await/issues/issue-95307.rs
new file mode 100644
index 00000000000..f7e48070ccd
--- /dev/null
+++ b/src/test/ui/async-await/issues/issue-95307.rs
@@ -0,0 +1,13 @@
+// edition:2018
+
+// Regression test for #95307.
+// The ICE occurred on all the editions, specifying edition:2018 to reduce diagnostics.
+
+pub trait C {
+    async fn new() -> [u8; _];
+    //~^ ERROR: functions in traits cannot be declared `async`
+    //~| ERROR: using `_` for array lengths is unstable
+    //~| ERROR: in expressions, `_` can only be used on the left-hand side of an assignment
+}
+
+fn main() {}
diff --git a/src/test/ui/async-await/issues/issue-95307.stderr b/src/test/ui/async-await/issues/issue-95307.stderr
new file mode 100644
index 00000000000..60fca71eb4b
--- /dev/null
+++ b/src/test/ui/async-await/issues/issue-95307.stderr
@@ -0,0 +1,30 @@
+error[E0706]: functions in traits cannot be declared `async`
+  --> $DIR/issue-95307.rs:7:5
+   |
+LL |     async fn new() -> [u8; _];
+   |     -----^^^^^^^^^^^^^^^^^^^^^
+   |     |
+   |     `async` because of this
+   |
+   = note: `async` trait functions are not currently supported
+   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
+
+error[E0658]: using `_` for array lengths is unstable
+  --> $DIR/issue-95307.rs:7:28
+   |
+LL |     async fn new() -> [u8; _];
+   |                            ^
+   |
+   = note: see issue #85077 <https://github.com/rust-lang/rust/issues/85077> for more information
+   = help: add `#![feature(generic_arg_infer)]` to the crate attributes to enable
+
+error: in expressions, `_` can only be used on the left-hand side of an assignment
+  --> $DIR/issue-95307.rs:7:28
+   |
+LL |     async fn new() -> [u8; _];
+   |                            ^ `_` not allowed here
+
+error: aborting due to 3 previous errors
+
+Some errors have detailed explanations: E0658, E0706.
+For more information about an error, try `rustc --explain E0658`.