about summary refs log tree commit diff
path: root/tests/ui/try-trait
diff options
context:
space:
mode:
authorCaio <c410.f3r@gmail.com>2023-08-28 17:47:37 -0300
committerCaio <c410.f3r@gmail.com>2023-08-28 17:47:37 -0300
commit5a69151d7d86042efaefcc8f58486267b95f7a06 (patch)
treeaeb72407d3148884bc0cb807ac3af9a4c61f7946 /tests/ui/try-trait
parent93dd62024113acb782812189d01e8e239da150e7 (diff)
downloadrust-5a69151d7d86042efaefcc8f58486267b95f7a06.tar.gz
rust-5a69151d7d86042efaefcc8f58486267b95f7a06.zip
Move tests
Diffstat (limited to 'tests/ui/try-trait')
-rw-r--r--tests/ui/try-trait/issue-32709.rs8
-rw-r--r--tests/ui/try-trait/issue-32709.stderr24
2 files changed, 32 insertions, 0 deletions
diff --git a/tests/ui/try-trait/issue-32709.rs b/tests/ui/try-trait/issue-32709.rs
new file mode 100644
index 00000000000..c05bfdc4cfd
--- /dev/null
+++ b/tests/ui/try-trait/issue-32709.rs
@@ -0,0 +1,8 @@
+// Make sure that the span of try shorthand does not include the trailing
+// semicolon;
+fn a() -> Result<i32, ()> {
+    Err(5)?; //~ ERROR
+    Ok(1)
+}
+
+fn main() {}
diff --git a/tests/ui/try-trait/issue-32709.stderr b/tests/ui/try-trait/issue-32709.stderr
new file mode 100644
index 00000000000..94e8f9295fd
--- /dev/null
+++ b/tests/ui/try-trait/issue-32709.stderr
@@ -0,0 +1,24 @@
+error[E0277]: `?` couldn't convert the error to `()`
+  --> $DIR/issue-32709.rs:4:11
+   |
+LL | fn a() -> Result<i32, ()> {
+   |           --------------- expected `()` because of this
+LL |     Err(5)?;
+   |           ^ the trait `From<{integer}>` is not implemented for `()`
+   |
+   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
+   = help: the following other types implement trait `From<T>`:
+             <(T,) as From<[T; 1]>>
+             <(T, T) as From<[T; 2]>>
+             <(T, T, T) as From<[T; 3]>>
+             <(T, T, T, T) as From<[T; 4]>>
+             <(T, T, T, T, T) as From<[T; 5]>>
+             <(T, T, T, T, T, T) as From<[T; 6]>>
+             <(T, T, T, T, T, T, T) as From<[T; 7]>>
+             <(T, T, T, T, T, T, T, T) as From<[T; 8]>>
+           and 4 others
+   = note: required for `Result<i32, ()>` to implement `FromResidual<Result<Infallible, {integer}>>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.