Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Print the path of a return-position impl trait in trait when return_type_notation is enabled #115624

Merged
merged 1 commit into from
Sep 8, 2023

Conversation

compiler-errors
Copy link
Member

When we're printing a return-position impl trait in trait, we usually just print it like an opaque. This is usually fine, but can be confusing when using return_type_notation. Print the path of the method from where the RPITIT originates when this feature gate is enabled.

@rustbot
Copy link
Collaborator

rustbot commented Sep 7, 2023

r? @WaffleLapkin

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 7, 2023
@rust-log-analyzer

This comment has been minimized.

@WaffleLapkin
Copy link
Member

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Sep 7, 2023

📌 Commit 748476d has been approved by WaffleLapkin

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 7, 2023
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Sep 7, 2023

Unverified

This user has not yet uploaded their public signing key.
…Lapkin

Print the path of a return-position impl trait in trait when `return_type_notation` is enabled

When we're printing a return-position impl trait in trait, we usually just print it like an opaque. This is *usually* fine, but can be confusing when using `return_type_notation`. Print the path of the method from where the RPITIT originates when this feature gate is enabled.
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 7, 2023
…llaumeGomez

Rollup of 8 pull requests

Successful merges:

 - rust-lang#115345 (MCP661: Move wasm32-wasi-preview1-threads target to Tier 2)
 - rust-lang#115604 (rustdoc: Render private fields in tuple struct as `/* private fields */`)
 - rust-lang#115624 (Print the path of a return-position impl trait in trait when `return_type_notation` is enabled)
 - rust-lang#115629 (Don't suggest dereferencing to unsized type)
 - rust-lang#115633 (Lint node for `PRIVATE_BOUNDS`/`PRIVATE_INTERFACES` is the item which names the private type)
 - rust-lang#115634 (Use `newtype_index` for `IntVid` and `FloatVid`.)
 - rust-lang#115638 (`-Cllvm-args` usability improvement)
 - rust-lang#115649 (diagnostics: add test case for trait bounds diagnostic)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 8, 2023
…iaskrgr

Rollup of 7 pull requests

Successful merges:

 - rust-lang#115345 (MCP661: Move wasm32-wasi-preview1-threads target to Tier 2)
 - rust-lang#115604 (rustdoc: Render private fields in tuple struct as `/* private fields */`)
 - rust-lang#115624 (Print the path of a return-position impl trait in trait when `return_type_notation` is enabled)
 - rust-lang#115629 (Don't suggest dereferencing to unsized type)
 - rust-lang#115634 (Use `newtype_index` for `IntVid` and `FloatVid`.)
 - rust-lang#115649 (diagnostics: add test case for trait bounds diagnostic)
 - rust-lang#115655 (rustdoc: remove unused ID `mainThemeStyle`)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit bef5187 into rust-lang:master Sep 8, 2023
@rustbot rustbot added this to the 1.74.0 milestone Sep 8, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 8, 2023
…llaumeGomez

Rollup of 8 pull requests

Successful merges:

 - rust-lang#115345 (MCP661: Move wasm32-wasi-preview1-threads target to Tier 2)
 - rust-lang#115604 (rustdoc: Render private fields in tuple struct as `/* private fields */`)
 - rust-lang#115624 (Print the path of a return-position impl trait in trait when `return_type_notation` is enabled)
 - rust-lang#115629 (Don't suggest dereferencing to unsized type)
 - rust-lang#115633 (Lint node for `PRIVATE_BOUNDS`/`PRIVATE_INTERFACES` is the item which names the private type)
 - rust-lang#115634 (Use `newtype_index` for `IntVid` and `FloatVid`.)
 - rust-lang#115638 (`-Cllvm-args` usability improvement)
 - rust-lang#115649 (diagnostics: add test case for trait bounds diagnostic)

r? `@ghost`
`@rustbot` modify labels: rollup
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Sep 8, 2023
Rollup merge of rust-lang#115624 - compiler-errors:rtn-path, r=WaffleLapkin

Print the path of a return-position impl trait in trait when `return_type_notation` is enabled

When we're printing a return-position impl trait in trait, we usually just print it like an opaque. This is *usually* fine, but can be confusing when using `return_type_notation`. Print the path of the method from where the RPITIT originates when this feature gate is enabled.
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Mar 13, 2025
…i-obk

Add an opt-out in pretty printing for RTN rendering

Today, we render RPITIT types like `impl Sized { T::method(..) }` when RTN is enabled. This is very useful for diagnostics, since it's often not clear what the `impl Sized` type means by itself, and it makes it clear that that's an RPITIT that can be bounded using RTN syntax. See rust-lang#115624.

However, since we don't distinguish types that are rendered for the purposes of printing messages vs suggestions, this representation leaks into suggestions and turns into code that can't be parsed. This PR adds a new `with_types_for_suggestion! {}` and `with_types_for_signature! {}` options to the pretty printing architecture to make it clear that we're rendering a type for code suggestions.

This can be applied later as we find that we need it.
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Mar 13, 2025
Rollup merge of rust-lang#138126 - compiler-errors:rtn-for-sugg, r=oli-obk

Add an opt-out in pretty printing for RTN rendering

Today, we render RPITIT types like `impl Sized { T::method(..) }` when RTN is enabled. This is very useful for diagnostics, since it's often not clear what the `impl Sized` type means by itself, and it makes it clear that that's an RPITIT that can be bounded using RTN syntax. See rust-lang#115624.

However, since we don't distinguish types that are rendered for the purposes of printing messages vs suggestions, this representation leaks into suggestions and turns into code that can't be parsed. This PR adds a new `with_types_for_suggestion! {}` and `with_types_for_signature! {}` options to the pretty printing architecture to make it clear that we're rendering a type for code suggestions.

This can be applied later as we find that we need it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants