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

🔬 move to universe-based lifetimes #48536

Closed
nikomatsakis opened this issue Feb 25, 2018 · 1 comment
Closed

🔬 move to universe-based lifetimes #48536

nikomatsakis opened this issue Feb 25, 2018 · 1 comment
Assignees
Labels
A-lifetimes Area: Lifetimes / regions C-enhancement Category: An issue proposing an enhancement or a PR with one. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-traits Working group: Traits, https://internals.rust-lang.org/t/announcing-traits-working-group/6804

Comments

@nikomatsakis
Copy link
Contributor

rustc currently uses a "leak-check"-based system for handling higher-ranked bounds. This design has a few flaws (e.g. #33684), and doesn't scale well to quantification over types and other things. @sgrif has been exploring moving to an alternate system, which I am dubbing the "universe" system. This is the system used by chalk.

The currently implementation is in these two PRs:

#47861
#48407

This issue exists to track the move for now.

@nikomatsakis nikomatsakis added the WG-traits Working group: Traits, https://internals.rust-lang.org/t/announcing-traits-working-group/6804 label Feb 25, 2018
@nikomatsakis nikomatsakis changed the title move to universe-based lifetimes 🔬 move to universe-based lifetimes Feb 25, 2018
@jkordish jkordish added C-enhancement Category: An issue proposing an enhancement or a PR with one. A-lifetimes Area: Lifetimes / regions T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. labels May 6, 2018
nikomatsakis added a commit to nikomatsakis/rust that referenced this issue Jun 25, 2018
As the comment explains, this is needed to prevent subtype from going
awry in higher-ranked cases, due to rust-lang#33684. The proper fix here is
introducing universes (rust-lang#48536).
nikomatsakis added a commit to nikomatsakis/rust that referenced this issue Jun 26, 2018
As the comment explains, this is needed to prevent subtype from going
awry in higher-ranked cases, due to rust-lang#33684. The proper fix here is
introducing universes (rust-lang#48536).
@nikomatsakis nikomatsakis self-assigned this Oct 9, 2018
@nikomatsakis
Copy link
Contributor Author

Implemented in #55517

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-lifetimes Area: Lifetimes / regions C-enhancement Category: An issue proposing an enhancement or a PR with one. C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-traits Working group: Traits, https://internals.rust-lang.org/t/announcing-traits-working-group/6804
Projects
None yet
Development

No branches or pull requests

2 participants