Teach structured errors to display short Ty<'_>#137201
Merged
bors merged 7 commits intorust-lang:masterfrom Feb 26, 2025
Merged
Teach structured errors to display short Ty<'_>#137201bors merged 7 commits intorust-lang:masterfrom
Ty<'_>#137201bors merged 7 commits intorust-lang:masterfrom
Conversation
Collaborator
|
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 |
RalfJung
reviewed
Feb 18, 2025
d8758cd to
56a942b
Compare
RalfJung
reviewed
Feb 19, 2025
56a942b to
a33d786
Compare
This comment has been minimized.
This comment has been minimized.
RalfJung
reviewed
Feb 19, 2025
b19a017 to
2dcd85f
Compare
10 tasks
oli-obk
reviewed
Feb 21, 2025
Contributor
|
@bors r+ |
Collaborator
fmease
added a commit
to fmease/rust
that referenced
this pull request
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`
Member
|
Needs rebase due to #135726 which added impl IntoDiagArg for RustcVersion {
fn into_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
c550bee
Compare
Contributor
Author
|
@bors r=oli-obk |
Collaborator
fmease
added a commit
to fmease/rust
that referenced
this pull request
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`
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Feb 26, 2025
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
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Feb 26, 2025
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
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Feb 26, 2025
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``
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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