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

Consider parent aliases of rigid nested projections for outlives bounds #135008

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RPIT associated type lifetime bound is ignored
2 participants