Skip to content

Conversation

compiler-errors
Copy link
Member

@compiler-errors compiler-errors commented Jan 4, 2025

See the code example. when Self::Assoc normalizes to a struct that has a tuple constructor, you cannot construct the type via Self::Assoc(field, field). Instead, suggest to replace it with the correct named struct.

Fixes #120871

@rustbot
Copy link
Collaborator

rustbot commented Jan 4, 2025

r? @davidtwco

rustbot has assigned @davidtwco.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@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 Jan 4, 2025
Copy link
Member

@jieyouxu jieyouxu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! One test comment, but otherwise looks good.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: maybe also //@ run-rustfix since the suggestion is machine-applicable?

@jieyouxu jieyouxu assigned jieyouxu and unassigned davidtwco Jan 5, 2025
@jieyouxu jieyouxu added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 5, 2025
@lqd
Copy link
Member

lqd commented Jan 5, 2025

(I was also already reviewing it lmao)

This LGTM, so feel free to r=me. I do have a question though: do you think it'd be worthwhile to support tuples in the same manner? (If so, I can take a look at that, no need to do this in this PR at all).

@compiler-errors compiler-errors force-pushed the invalid-tuple-ctor-projection branch from 189d0bd to 304ccf4 Compare January 6, 2025 18:04
@compiler-errors
Copy link
Member Author

@bors r=lqd,jieyouxu rollup

do you think it'd be worthwhile to support tuples in the same manner? (If so, I can take a look at that, no need to do this in this PR at all).

@lqd: Perhaps? I don't know. You're welcome to try it out, tho. Maybe also look into cases where users try to construct tuples through type aliases like type Foo = (i32, i32) and then Foo(1, 2), if that's not already handled?

@bors
Copy link
Collaborator

bors commented Jan 6, 2025

📌 Commit 304ccf4 has been approved by lqd,jieyouxu

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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jan 6, 2025
jhpratt added a commit to jhpratt/rust that referenced this pull request Jan 7, 2025
…-projection, r=lqd,jieyouxu

Suggest to replace tuple constructor through projection

See the code example. when `Self::Assoc` normalizes to a struct that has a tuple constructor, you cannot construct the type via `Self::Assoc(field, field)`. Instead, suggest to replace it with the correct named struct.

Fixes rust-lang#120871
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 7, 2025
Rollup of 9 pull requests

Successful merges:

 - rust-lang#131830 (Add support for wasm exception handling to Emscripten target)
 - rust-lang#132345 (Improve diagnostics for `HostEffectPredicate` in the new solver)
 - rust-lang#134568 (Release notes for 1.84.0)
 - rust-lang#134744 (Don't ice on bad transmute in typeck in new solver)
 - rust-lang#135090 (Suggest to replace tuple constructor through projection)
 - rust-lang#135116 (rustdoc: Fix mismatched capitalization in sidebar)
 - rust-lang#135126 (mark deprecated option as deprecated in rustc_session to remove copypasta and small refactor)
 - rust-lang#135139 ([generic_assert] Constify methods used by the formatting system)
 - rust-lang#135170 (Update triagebot.toml: celinval vacation is over)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 8b54f95 into rust-lang:master Jan 7, 2025
6 checks passed
@rustbot rustbot added this to the 1.86.0 milestone Jan 7, 2025
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Jan 7, 2025
Rollup merge of rust-lang#135090 - compiler-errors:invalid-tuple-ctor-projection, r=lqd,jieyouxu

Suggest to replace tuple constructor through projection

See the code example. when `Self::Assoc` normalizes to a struct that has a tuple constructor, you cannot construct the type via `Self::Assoc(field, field)`. Instead, suggest to replace it with the correct named struct.

Fixes rust-lang#120871
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.

Unable to find assoc type when using tuple create syntax Self::AssocType(...)
6 participants