about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorDavid Wood <david@davidtw.co>2019-09-30 21:27:18 +0100
committerDavid Wood <david@davidtw.co>2019-09-30 21:27:18 +0100
commit870b47fee4f0986f033f8bdede46a63242c61df0 (patch)
tree4e11cb94f0b154cf45b756e5be687c9cf992dee4 /src/test
parent22bc9e1d9ca49ee4f5cd953088ab09c238a6dd26 (diff)
downloadrust-870b47fee4f0986f033f8bdede46a63242c61df0.tar.gz
rust-870b47fee4f0986f033f8bdede46a63242c61df0.zip
typeck: silence unreachable code from await
This commit silences the unreachable code lint when it originates from
within a await desugaring.

Signed-off-by: David Wood <david@davidtw.co>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/async-await/unreachable-lint-1.rs12
-rw-r--r--src/test/ui/async-await/unreachable-lint-1.stderr16
-rw-r--r--src/test/ui/async-await/unreachable-lint.rs13
3 files changed, 41 insertions, 0 deletions
diff --git a/src/test/ui/async-await/unreachable-lint-1.rs b/src/test/ui/async-await/unreachable-lint-1.rs
new file mode 100644
index 00000000000..d63d643c4e7
--- /dev/null
+++ b/src/test/ui/async-await/unreachable-lint-1.rs
@@ -0,0 +1,12 @@
+// edition:2018
+#![deny(unreachable_code)]
+
+async fn foo() {
+    return; bar().await;
+    //~^ ERROR unreachable statement
+}
+
+async fn bar() {
+}
+
+fn main() { }
diff --git a/src/test/ui/async-await/unreachable-lint-1.stderr b/src/test/ui/async-await/unreachable-lint-1.stderr
new file mode 100644
index 00000000000..382581bf945
--- /dev/null
+++ b/src/test/ui/async-await/unreachable-lint-1.stderr
@@ -0,0 +1,16 @@
+error: unreachable statement
+  --> $DIR/unreachable-lint-1.rs:5:13
+   |
+LL |     return; bar().await;
+   |     ------  ^^^^^^^^^^^^ unreachable statement
+   |     |
+   |     any code following this expression is unreachable
+   |
+note: lint level defined here
+  --> $DIR/unreachable-lint-1.rs:2:9
+   |
+LL | #![deny(unreachable_code)]
+   |         ^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/async-await/unreachable-lint.rs b/src/test/ui/async-await/unreachable-lint.rs
new file mode 100644
index 00000000000..ca18cfde4f2
--- /dev/null
+++ b/src/test/ui/async-await/unreachable-lint.rs
@@ -0,0 +1,13 @@
+// check-pass
+// edition:2018
+#![deny(unreachable_code)]
+
+async fn foo() {
+    endless().await;
+}
+
+async fn endless() -> ! {
+    loop {}
+}
+
+fn main() { }