Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # 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
# for free to join this conversation on GitHub. Already have an account? # 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