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

Implement where clauses #17657

Closed
5 of 7 tasks
brson opened this issue Sep 30, 2014 · 9 comments
Closed
5 of 7 tasks

Implement where clauses #17657

brson opened this issue Sep 30, 2014 · 9 comments
Labels
A-type-system Area: Type system B-RFC-approved Blocker: Approved by a merged RFC but not yet implemented. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC P-medium Medium priority S-tracking-impl-incomplete Status: The implementation is incomplete. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@brson
Copy link
Contributor

brson commented Sep 30, 2014

Tracking rust-lang/rfcs#135.

Task list:

@brson brson added C-enhancement Category: An issue proposing an enhancement or a PR with one. I-nominated labels Sep 30, 2014
@pnkfelix
Copy link
Member

pnkfelix commented Oct 2, 2014

P-backcompat-libs, but not 1.0.

@nikomatsakis
Copy link
Contributor

I've been working on this somewhat in the background. The patch is somewhat more involved than I imagined initially because where clauses are more powerful than I initially imagined -- in particular, there are lots of bits of code that assume that there is an intrinsic set of bounds associated with a specific type parameter, whereas where clauses make those things scope dependent. We've been steadily removed them and by now all the deep connections are almost entirely eradicated (@pcwalton's work in #17864 is, I think, the last bit).

In my branch, I was removing all the lists of bounds from type parameters and adding in a list of predicates instead. It occurred to me today that it might also be possible to phase support for this in faster by doing it in two stages: first, leaving the code as is but adding a generalized list of predicates, and then removing the bounds lists. I'm not sure which is better.

@jroesch
Copy link
Member

jroesch commented Oct 24, 2014

@nikomatsakis I'm looking into this after our conversation this morning. Let me know if there are any other tracking issues I should be following. I am going to go dig up your branch and work on it during the afternoon session.

@jroesch
Copy link
Member

jroesch commented Dec 22, 2014

@nikomatsakis would it be possible to update the check list at some point? would be good to check at glance what remains. It is fine if it happens after #20020 lands.

@aturon
Copy link
Member

aturon commented Jan 8, 2015

Nominating for removal from P-backcompat-libs; enough has landed for us to already roll this out.

@pnkfelix
Copy link
Member

pnkfelix commented Jan 8, 2015

removing from P-backcompat-libs (since the back compat stuff is done). P-high.

@pnkfelix pnkfelix added P-medium Medium priority and removed P-backcompat-libs labels Jan 8, 2015
@steveklabnik steveklabnik added the B-RFC-approved Blocker: Approved by a merged RFC but not yet implemented. label Mar 4, 2016
@brson brson added A-type-system Area: Type system T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 25, 2016
@Mark-Simulacrum Mark-Simulacrum added C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC and removed C-enhancement Category: An issue proposing an enhancement or a PR with one. C-feature-request Category: A feature request, i.e: not implemented / a PR. labels Jul 27, 2017
@camelid
Copy link
Member

camelid commented Sep 17, 2020

ping from triage

@pnkfelix
Copy link
Member

pnkfelix commented Mar 4, 2022

Discussed at today's T-compiler backlog bonanza.

@rustbot label +S-tracking-impl-incomplete

@rustbot rustbot added the S-tracking-impl-incomplete Status: The implementation is incomplete. label Mar 4, 2022
@nikomatsakis
Copy link
Contributor

This is close enough to done that we are going to close it -- the two remaining issues can be resolved independently.

lnicola pushed a commit to lnicola/rust that referenced this issue Jul 28, 2024
RalfJung pushed a commit to RalfJung/rust that referenced this issue Aug 1, 2024
@fmease fmease added A-type-system Area: Type system and removed A-type-system Area: Type system labels Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-type-system Area: Type system B-RFC-approved Blocker: Approved by a merged RFC but not yet implemented. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC P-medium Medium priority S-tracking-impl-incomplete Status: The implementation is incomplete. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

10 participants