Uh oh!
There was an error while loading. Please reload this page.
Teach structured errors to display short Ty<'_> - #137201
Conversation
rustbot
commented
Feb 18, 2025
Some changes occurred to the CTFE / Miri interpreter cc @rust-lang/miri, @rust-lang/wg-const-eval Some changes occurred in compiler/rustc_passes/src/check_attr.rs Some changes occurred in match checking cc @Nadrieril Some changes occurred to the CTFE machinery cc @rust-lang/wg-const-eval Some changes occurred in need_type_info.rs cc @lcnr |
Uh oh!
There was an error while loading. Please reload this page.
d8758cd to
56a942bCompareUh oh!
There was an error while loading. Please reload this page.
56a942b to
a33d786Compare
This comment has been minimized.
This comment has been minimized.
Uh oh!
There was an error while loading. Please reload this page.
b19a017 to
2dcd85fCompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
oli-obk
commented
Feb 25, 2025
@bors r+ |
bors
commented
Feb 25, 2025
…, r=oli-obk
Teach structured errors to display short `Ty<'_>`
Make it so that in every structured error annotated with `#[derive(Diagnostic)]` that has a field of type `Ty<'_>`, the printing of that value into a `String` will look at the thread-local storage `TyCtxt` in order to shorten to a length appropriate with the terminal width. When this happen, the resulting error will have a note with the file where the full type name was written to.
```
error[E0618]: expected function, found `((..., ..., ..., ...), ..., ..., ...)``
--> long.rs:7:5
|
6 | fn foo(x: D) { //~ `x` has type `(...
| - `x` has type `((..., ..., ..., ...), ..., ..., ...)`
7 | x(); //~ ERROR expected function, found `(...
| ^--
| |
| call expression requires function
|
= note: the full name for the type has been written to 'long.long-type-14182675702747116984.txt'
= note: consider using `--verbose` to print the full type name to the console
```
Follow up to and response to the comments on rust-lang#136898.
r? `@oli-obk`Needs rebase due to #135726 which added implIntoDiagArgforRustcVersion{fninto_diag_arg(self) -> DiagArgValue{DiagArgValue::Str(Cow::Owned(self.to_string()))}}to https://github.com/rust-lang/blobrust/blob/compiler/rustc_errors/src/diagnostic_impls.rs. (CI failed in rollup #137607: #137607 (comment)) @bors r- |
This comment has been minimized.
This comment has been minimized.
Make it so that every structured error annotated with `#[derive(Diagnostic)]` that has a field of type `Ty<'_>`, the printing of that value into a `String` will look at the thread-local storage `TyCtxt` in order to shorten to a length appropriate with the terminal width. When this happen, the resulting error will have a note with the file where the full type name was written to.
```
error[E0618]: expected function, found `((..., ..., ..., ...), ..., ..., ...)``
--> long.rs:7:5
|
6 | fn foo(x: D) { //~ `x` has type `(...
| - `x` has type `((..., ..., ..., ...), ..., ..., ...)`
7 | x(); //~ ERROR expected function, found `(...
| ^--
| |
| call expression requires function
|
= note: the full name for the type has been written to 'long.long-type-14182675702747116984.txt'
= note: consider using `--verbose` to print the full type name to the console
`````` error[E0614]: type `(..., ..., ..., ...)` cannot be dereferenced --> $DIR/long-E0614.rs:10:5 | LL | *x; | ^^ can't be dereferenced | = note: the full name for the type has been written to '$TEST_BUILD_DIR/$FILE.long-type-hash.txt' = note: consider using `--verbose` to print the full type name to the console ```
2dcd85f to
c550beeCompareestebank
commented
Feb 26, 2025
@bors r=oli-obk |
bors
commented
Feb 26, 2025
…, r=oli-obk
Teach structured errors to display short `Ty<'_>`
Make it so that in every structured error annotated with `#[derive(Diagnostic)]` that has a field of type `Ty<'_>`, the printing of that value into a `String` will look at the thread-local storage `TyCtxt` in order to shorten to a length appropriate with the terminal width. When this happen, the resulting error will have a note with the file where the full type name was written to.
```
error[E0618]: expected function, found `((..., ..., ..., ...), ..., ..., ...)``
--> long.rs:7:5
|
6 | fn foo(x: D) { //~ `x` has type `(...
| - `x` has type `((..., ..., ..., ...), ..., ..., ...)`
7 | x(); //~ ERROR expected function, found `(...
| ^--
| |
| call expression requires function
|
= note: the full name for the type has been written to 'long.long-type-14182675702747116984.txt'
= note: consider using `--verbose` to print the full type name to the console
```
Follow up to and response to the comments on rust-lang#136898.
r? `@oli-obk`Rollup of 10 pull requests Successful merges: - rust-lang#134585 (remove `MaybeUninit::uninit_array`) - rust-lang#136187 (Use less CString in the examples of CStr.) - rust-lang#136457 (Expose algebraic floating point intrinsics) - rust-lang#137201 (Teach structured errors to display short `Ty<'_>`) - rust-lang#137620 (Fix `attr` cast for espidf) - rust-lang#137631 (Avoid collecting associated types for undefined trait) - rust-lang#137635 (Don't suggest constraining unstable associated types) - rust-lang#137642 (Rustc dev guide subtree update) - rust-lang#137660 (Update gcc submodule) - rust-lang#137670 (revert accidental change in get_closest_merge_commit) r? `@ghost` `@rustbot` modify labels: rollup
Rollup of 10 pull requests Successful merges: - rust-lang#134585 (remove `MaybeUninit::uninit_array`) - rust-lang#136187 (Use less CString in the examples of CStr.) - rust-lang#137201 (Teach structured errors to display short `Ty<'_>`) - rust-lang#137620 (Fix `attr` cast for espidf) - rust-lang#137631 (Avoid collecting associated types for undefined trait) - rust-lang#137635 (Don't suggest constraining unstable associated types) - rust-lang#137642 (Rustc dev guide subtree update) - rust-lang#137660 (Update gcc submodule) - rust-lang#137670 (revert accidental change in get_closest_merge_commit) - rust-lang#137671 (Make -Z unpretty=mir suggest -Z dump-mir as well for discoverability) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#137201 - estebank:structured-errors-long-ty, r=oli-obk Teach structured errors to display short `Ty<'_>` Make it so that in every structured error annotated with `#[derive(Diagnostic)]` that has a field of type `Ty<'_>`, the printing of that value into a `String` will look at the thread-local storage `TyCtxt` in order to shorten to a length appropriate with the terminal width. When this happen, the resulting error will have a note with the file where the full type name was written to. ``` error[E0618]: expected function, found `((..., ..., ..., ...), ..., ..., ...)`` --> long.rs:7:5 | 6 | fn foo(x: D) { //~ `x` has type `(... | - `x` has type `((..., ..., ..., ...), ..., ..., ...)` 7 | x(); //~ ERROR expected function, found `(... | ^-- | | | call expression requires function | = note: the full name for the type has been written to 'long.long-type-14182675702747116984.txt' = note: consider using `--verbose` to print the full type name to the console ``` Follow up to and response to the comments on rust-lang#136898. r? ``@oli-obk``
Make it so that in every structured error annotated with
#[derive(Diagnostic)]that has a field of typeTy<'_>, the printing of that value into aStringwill look at the thread-local storageTyCtxtin order to shorten to a length appropriate with the terminal width. When this happen, the resulting error will have a note with the file where the full type name was written to.Follow up to and response to the comments on #136898.
r? @oli-obk