mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-03 14:34:58 +00:00
Unless `try_trait_v2` is enabled, don't mention that `FromResidual` isn't implemented for a specific type when the implicit `From` conversion of a `?` fails. For the end user on stable, `?` might as well be a compiler intrinsic, so we remove that note to avoid further confusion and allowing other parts of the error to be more prominent.
```
error[E0277]: `?` couldn't convert the error to `u8`
--> $DIR/bad-interconversion.rs:4:20
|
LL | fn result_to_result() -> Result<u64, u8> {
| --------------- expected `u8` because of this
LL | Ok(Err(123_i32)?)
| ------------^ the trait `From<i32>` is not implemented for `u8`
| |
| this can't be annotated with `?` because it has type `Result<_, i32>`
|
= 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>`:
`u8` implements `From<Char>`
`u8` implements `From<bool>`
```
26 lines
1.1 KiB
Plaintext
26 lines
1.1 KiB
Plaintext
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 `()`
|
|
| |
|
|
| this can't be annotated with `?` because it has type `Result<_, {integer}>`
|
|
|
|
|
= 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, T)` implements `From<[T; 2]>`
|
|
`(T, T, T)` implements `From<[T; 3]>`
|
|
`(T, T, T, T)` implements `From<[T; 4]>`
|
|
`(T, T, T, T, T)` implements `From<[T; 5]>`
|
|
`(T, T, T, T, T, T)` implements `From<[T; 6]>`
|
|
`(T, T, T, T, T, T, T)` implements `From<[T; 7]>`
|
|
`(T, T, T, T, T, T, T, T)` implements `From<[T; 8]>`
|
|
`(T, T, T, T, T, T, T, T, T)` implements `From<[T; 9]>`
|
|
and 4 others
|
|
|
|
error: aborting due to 1 previous error
|
|
|
|
For more information about this error, try `rustc --explain E0277`.
|