Skip to content

Projections, lifetimes, and WF tracking issue (RFC 1214) #27579

Closed

Description

@nikomatsakis

Tracking issue for rust-lang/rfcs#1214

After warning cycle is complete

  • Remove old WF check
  • Remove RFC1214 origins and warnings
  • Remove special treatment of ReEmpty in the outlives relation

Testing chart

Subject Tests Issues
OutlivesScalar regions-outlives-scalar.rs
OutlivesNominalType regions-outlives-nominal-type-struct.rs
regions-outlives-nominal-type-enum.rs
OutlivesReference all of the other tests
OutlivesObject compile-fail/wf-in-obj-type-static.rs
OutlivesProjectionEnv compile-fail/wf-in-obj-type-static.rs
WfObject, lifetime bounds compile-fail/regions-wf-trait-object.rs
WfSlice compile-file/wf-array-elem-sized.rs
const wf-const-type.rs
struct, bound wf-struct-bound.rs
struct, field ...many other tests...
enum, bound wf-enum-bound.rs
enum, field ...many other tests...
trait, bound wf-trait-bound.rs
trait, assoc type default wf-trait-associated-type-trait.rs
wf-trait-associated-type-region.rs
trait, assoc type bound wf-trait-associated-type-bound.rs
trait, default fn, arg wf-trait-default-fn-arg.rs
trait, default fn, return wf-trait-default-fn-ret.rs
trait, default fn, where clause wf-trait-default-fn-where-clause.rs
trait, fn, arg wf-trait-fn-arg.rs
trait, fn, return wf-trait-fn-ret.rs
trait, fn, where clause wf-trait-fn-where-clause.rs
fn item, argument type wf-in-fn-arg.rs
fn item, return type wf-in-fn-ret.rs
fn item, where clause wf-in-fn-where-clause.rs
inherent impl, where clause wf-inherent-impl-where-clause.rs
inherent impl, fn, where clause wf-inherent-impl-method-where-clause.rs
impl, assoc type default wf-impl-associated-type-region.rs
wf-impl-associated-type-trait.rs
fn type, argument type wf-in-fn-type-arg.rs
fn type, return type wf-in-fn-type-ret.rs
wf-in-fn-type-static.rs
object type arg compile-fail/wf-in-obj-type-static.rs
compile-fail/wf-in-obj-type-region.rs
object safety compile-fail/wf-object-safe.rs #21953
fn(T): 'a affects T compile-fail/wf-outlives-ty-in-fn-or-trait.rs
OutlivesProjection* compile-fail/associated-types-outlives.rs #24622
OutlivesProjection* compile-fail/regions-assoc-type-outlives-container*.rs
OutlivesProjectionComponents compile-fail/regions-close-associated-type-into-object.rs
implied bounds projection gap compile-fail/regions-implied-bounds-projection-gap*rs

Activity

  1. jroesch commented on Aug 9, 2015

    @jroesch
    Contributor

    cc me

  2. added a commit that references this issue on Aug 14, 2015
  3. frewsxcv commented on Sep 5, 2015

    @frewsxcv
    Contributor

    #27592 and #27583 can be checked-off in the original description

    also, is there a way to determine which crates are impacted by the changes proposed by RFC 1214?

  4. mitchmindtree commented on Sep 10, 2015

    @mitchmindtree
    Contributor

    Just wanted to mention that I'm really excited for these changes to land on stable 😸 I have a lot of where clauses that look something like this:

    where
        P::HLI: 'a + 'b,
        P::PatternGenerator: 'a + 'b,
        P::PhraseGenerator: 'a + 'b,
        P::Instrument: 'a + 'b,
        <P::Instrument as Instrument>::Source: 'a + 'b,
        P::Effect: 'a + 'b,
        P::Sample: 'a + 'b,
        P::BusId: 'a + 'b,

    If I understand these WF changes correctly, they will save me hundreds of lines being able to simply write

    where P: 'a + 'b`

    instead.

  5. Stebalien commented on Sep 30, 2015

    @Stebalien
    Contributor

    Also fixes #21837.

  6. nikomatsakis commented on Sep 30, 2015

    @nikomatsakis
    ContributorAuthor

    @Stebalien

    Also fixes #21837.

    Not quite, because the interaction of implied bounds with variance is still not being properly handled.

  7. Stebalien commented on Sep 30, 2015

    @Stebalien
    Contributor

    @nikomatsakis sorry, it fixes the current test case so I assumed it fixed the bug.

  8. mitchmindtree commented on Dec 23, 2015

    @mitchmindtree
    Contributor

    I'd love to know the status of this 😸

    BTW, It looks like we may be able to check off some of the related issues in the original comment: #24622, #23442, #21748, #25692, #21953 and as @frewsxcv mentioned, #27592 and #27583.

  9. brson commented on Jun 23, 2016

    @brson
    Contributor

    @nikomatsakis Is this still P-high? Can it be lowered or assigned?

  10. added
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    on Jun 23, 2016
  11. pnkfelix commented on Jun 23, 2016

    @pnkfelix
    Contributor

    assigning to self to double-check what's done and what's not

  12. 3 remaining items

  13. added
    C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFC
    on Jul 22, 2017
  14. pnkfelix commented on Feb 21, 2019

    @pnkfelix
    Contributor

    unassigning self; i haven't done anything with this and I don't think I'm the right person to take charge here.

  15. removed their assignment
    on Feb 21, 2019
  16. pnkfelix commented on Mar 4, 2022

    @pnkfelix
    Contributor

    Discussed at today's T-compiler backlog bonanza.

    @rustbot label +T-lang +WG-traits +S-tracking-needs-summary

  17. added
    S-tracking-needs-summaryStatus: It's hard to tell what's been done and what hasn't! Someone should do some investigation.
    T-langRelevant to the language team
    on Mar 4, 2022
  18. nikomatsakis commented on Jun 17, 2022

    @nikomatsakis
    ContributorAuthor

    Discussed in @rust-lang/types triage today. Decided to close this issue -- RFC 1214 is long-since stabilized, and the work on a-mir-formality will help us deal with ensuring exhaustive testing.

  19. added and removed on Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-type-systemArea: Type systemB-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCS-tracking-needs-summaryStatus: It's hard to tell what's been done and what hasn't! Someone should do some investigation.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-langRelevant to the language team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions