summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-06-02 13:07:12 +0900
committerGitHub <noreply@github.com>2020-06-02 13:07:12 +0900
commit8a68fc6ff4f55a7a775a4339de4ca845a68ab43a (patch)
tree1fc2b8016546771976168d08691ff2669e1de564 /src/test
parentad4bc3323b9299d867697e9653dcea1b5e1ad283 (diff)
parent77503578e1e727228ce47dd7847302936cf80a23 (diff)
downloadrust-8a68fc6ff4f55a7a775a4339de4ca845a68ab43a.tar.gz
rust-8a68fc6ff4f55a7a775a4339de4ca845a68ab43a.zip
Rollup merge of #72775 - JohnTitor:await-sugg, r=estebank
Return early to avoid ICE

Fixes #72766
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/suggestions/issue-72766.rs20
-rw-r--r--src/test/ui/suggestions/issue-72766.stderr15
2 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/suggestions/issue-72766.rs b/src/test/ui/suggestions/issue-72766.rs
new file mode 100644
index 00000000000..0448f071958
--- /dev/null
+++ b/src/test/ui/suggestions/issue-72766.rs
@@ -0,0 +1,20 @@
+// edition:2018
+// compile-flags: -Cincremental=tmp/issue-72766
+
+pub struct SadGirl;
+
+impl SadGirl {
+    pub async fn call(&self) -> Result<(), ()> {
+        Ok(())
+    }
+}
+
+async fn async_main() -> Result<(), ()> {
+    // should be `.call().await?`
+    SadGirl {}.call()?; //~ ERROR: the `?` operator can only be applied to values
+    Ok(())
+}
+
+fn main() {
+    let _ = async_main();
+}
diff --git a/src/test/ui/suggestions/issue-72766.stderr b/src/test/ui/suggestions/issue-72766.stderr
new file mode 100644
index 00000000000..4290f3b4bf1
--- /dev/null
+++ b/src/test/ui/suggestions/issue-72766.stderr
@@ -0,0 +1,15 @@
+error[E0277]: the `?` operator can only be applied to values that implement `std::ops::Try`
+  --> $DIR/issue-72766.rs:14:5
+   |
+LL |     SadGirl {}.call()?;
+   |     ^^^^^^^^^^^^^^^^^^
+   |     |
+   |     the `?` operator cannot be applied to type `impl std::future::Future`
+   |     help: consider using `.await` here: `SadGirl {}.call().await?`
+   |
+   = help: the trait `std::ops::Try` is not implemented for `impl std::future::Future`
+   = note: required by `std::ops::Try::into_result`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.