diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-03-02 10:09:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-02 10:09:36 +0100 |
| commit | 3432d1b0871239ec0b85a1e30ba536194c0b0ae3 (patch) | |
| tree | 58cfcc909f088e468cdf469118a3dc78016bc9c1 /compiler/rustc_llvm/llvm-wrapper/SymbolWrapper.cpp | |
| parent | b2c933a1b980e458aa3ac9699aa1a413c541a8c4 (diff) | |
| parent | 62baa670e325f36e5a8950d25a0bd335e53e95c3 (diff) | |
| download | rust-3432d1b0871239ec0b85a1e30ba536194c0b0ae3.tar.gz rust-3432d1b0871239ec0b85a1e30ba536194c0b0ae3.zip | |
Rollup merge of #121739 - jieyouxu:loooong-typename, r=estebank
Display short types for unimplemented trait
Shortens unimplemented trait diagnostics. Now shows:
```
error[E0277]: `Option<Option<Option<...>>>` doesn't implement `std::fmt::Display`
--> $DIR/on_unimplemented_long_types.rs:4:17
|
LL | pub fn foo() -> impl std::fmt::Display {
| ^^^^^^^^^^^^^^^^^^^^^^ `Option<Option<Option<...>>>` cannot be formatted with the default formatter
LL |
LL | / Some(Some(Some(Some(Some(Some(Some(Some(Some(S...
LL | | Some(Some(Some(Some(Some(Some(Some(Some(So...
LL | | Some(Some(Some(Some(Some(Some(Some(Som...
LL | | Some(Some(Some(Some(Some(Some(Some...
... |
LL | | ))))))))))),
LL | | )))))))))))
| |_______________- return type was inferred to be `Option<Option<Option<...>>>` here
|
= help: the trait `std::fmt::Display` is not implemented for `Option<Option<Option<...>>>`
= note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.
```
I'm not 100% sure if this is desirable, or if we should just let the long types remain long. This is also kinda a short-term bandaid solution. The real long term solution is to properly migrate `rustc_trait_selection`'s error reporting to use translatable diagnostics and then properly handle type name printing.
Fixes #121687.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/SymbolWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
