From a94e6c78a2f2ceefbfc8781d885eb74a69a5d542 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 17 Jul 2022 08:50:41 +0900 Subject: [PATCH] Add regression test for #95829 Signed-off-by: Yuki Okushi --- src/test/ui/extern/issue-95829.rs | 10 +++++++++ src/test/ui/extern/issue-95829.stderr | 32 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/test/ui/extern/issue-95829.rs create mode 100644 src/test/ui/extern/issue-95829.stderr diff --git a/src/test/ui/extern/issue-95829.rs b/src/test/ui/extern/issue-95829.rs new file mode 100644 index 0000000000000..3379148ae7bb0 --- /dev/null +++ b/src/test/ui/extern/issue-95829.rs @@ -0,0 +1,10 @@ +// edition:2018 + +extern { + async fn L() { //~ ERROR: incorrect function inside `extern` block + //~^ ERROR: functions in `extern` blocks cannot have qualifiers + async fn M() {} + } +} + +fn main() {} diff --git a/src/test/ui/extern/issue-95829.stderr b/src/test/ui/extern/issue-95829.stderr new file mode 100644 index 0000000000000..b902f0ef8f5c0 --- /dev/null +++ b/src/test/ui/extern/issue-95829.stderr @@ -0,0 +1,32 @@ +error: incorrect function inside `extern` block + --> $DIR/issue-95829.rs:4:14 + | +LL | extern { + | ------ `extern` blocks define existing foreign functions and functions inside of them cannot have a body +LL | async fn L() { + | ______________^___- + | | | + | | cannot have a body +LL | | +LL | | async fn M() {} +LL | | } + | |_____- help: remove the invalid body: `;` + | + = help: you might have meant to write a function accessible through FFI, which can be done by writing `extern fn` outside of the `extern` block + = note: for more information, visit https://doc.rust-lang.org/std/keyword.extern.html + +error: functions in `extern` blocks cannot have qualifiers + --> $DIR/issue-95829.rs:4:14 + | +LL | extern { + | ------ in this `extern` block +LL | async fn L() { + | ^ + | +help: remove the qualifiers + | +LL | fn L() { + | ~~ + +error: aborting due to 2 previous errors +