Skip to content

Conversation

compiler-errors
Copy link
Member

When we have some opaque like type Foo = impl Bar<Out: 'static> (or an RPIT -- using a TAIT just gives us a nice name for the example), then when proving <Foo as Bar>::Out: 'static, consider the item bounds of Foo so we can prove that item bound.

Similarly this should work for nested projections. If I have some trait Foo { type Assoc: Bar<Out: 'static> }, then I should be able to prove that <<T as Foo>::Assoc as Bar>::Out: 'static.

Since associated type bounds are now stable, this is something that users should be able to take advantage of.

Fixes #135006

r? @ghost

@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 2, 2025
@Dylan-DPC Dylan-DPC 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 Mar 14, 2025
@bors
Copy link
Collaborator

bors commented Sep 9, 2025

☔ The latest upstream changes (presumably #145717) made this pull request unmergeable. Please resolve the merge conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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.

RPIT associated type lifetime bound is ignored
4 participants