about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2025-02-19 18:52:08 +0100
committerGitHub <noreply@github.com>2025-02-19 18:52:08 +0100
commitdd60b6ca2787fe48a29f45d3b6b6d36bc97dce7e (patch)
treee01f5e41d7a14359b6196e7c5eb85e941dd3cf3b /compiler/rustc_codegen_llvm/src
parentfa10786e18519d3618736a465a786ad3fbb3124b (diff)
parent6eb48824dac44b466ca03fe67760a63d8a45d1dc (diff)
downloadrust-dd60b6ca2787fe48a29f45d3b6b6d36bc97dce7e.tar.gz
rust-dd60b6ca2787fe48a29f45d3b6b6d36bc97dce7e.zip
Rollup merge of #137232 - estebank:from-residual-note, r=petrochenkov
Don't mention `FromResidual` on bad `?`

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>`
```
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions