summaryrefslogtreecommitdiffstats
path: root/tests/ui/try-trait
diff options
context:
space:
mode:
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 000000000..c05bfdc4c
--- /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 000000000..94e8f9295
--- /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`.