{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/27579","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/27579/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/27579/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/27579/events","html_url":"https://github.com/rust-lang/rust/issues/27579","id":99635740,"number":27579,"title":"Projections, lifetimes, and WF tracking issue (RFC 1214)","user":{"login":"nikomatsakis","id":155238,"avatar_url":"https://avatars.githubusercontent.com/u/155238?v=3","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rust/labels/A-typesystem","name":"A-typesystem","color":"d7e102"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-08-07T12:03:57Z","updated_at":"2015-09-30T01:34:56Z","closed_at":null,"body":"### Tracking issue for rust-lang/rfcs#1214\r\n\r\n- [ ] rust-lang/rust#26406\r\n- [ ] rust-lang/rust#24622\r\n- [ ] rust-lang/rust#23442\r\n- [ ] rust-lang/rust#21748\r\n- [ ] rust-lang/rust#25692\r\n- [ ] rust-lang/rust#21953\r\n- [ ] https://github.com/rust-lang/rust/issues/27592\r\n- [ ] Just take implied bounds from arguments. Implementing this probably requires improving `check_method`\r\n- [ ] https://github.com/rust-lang/rust/issues/27583\r\n- [ ] Clarify WF checking for negative impls\r\n- [ ] WF checking for object fragments where `Self` is not needed\r\n\r\n### After warning cycle is complete\r\n\r\n- [ ] Remove old WF check\r\n- [ ] Remove RFC1214 origins and warnings\r\n- [ ] Remove special treatment of `ReEmpty` in the outlives relation\r\n\r\n### Testing chart\r\n\r\n| Subject | Tests | Issues |\r\n| ------- | ----- | ------ |\r\n| OutlivesScalar | regions-outlives-scalar.rs | |\r\n| OutlivesNominalType | regions-outlives-nominal-type-struct.rs | |\r\n|                     | regions-outlives-nominal-type-enum.rs | |\r\n| OutlivesReference | all of the other tests | |\r\n| OutlivesObject | compile-fail/wf-in-obj-type-static.rs | |\r\n| OutlivesProjectionEnv | compile-fail/wf-in-obj-type-static.rs | |\r\n| WfObject, lifetime bounds | compile-fail/regions-wf-trait-object.rs | |\r\n| WfSlice | compile-file/wf-array-elem-sized.rs | |\r\n| const                           | wf-const-type.rs | |\r\n| struct, bound                   | wf-struct-bound.rs | |\r\n| struct, field                   | ...many other tests... | |\r\n| enum, bound                     | wf-enum-bound.rs | |\r\n| enum, field                     | ...many other tests... | |\r\n| trait, bound                    | wf-trait-bound.rs | |\r\n| trait, assoc type default       | wf-trait-associated-type-trait.rs | |\r\n|                                 | wf-trait-associated-type-region.rs | |\r\n| trait, assoc type bound         | wf-trait-associated-type-bound.rs | |\r\n| trait, default fn, arg          | wf-trait-default-fn-arg.rs | |\r\n| trait, default fn, return       | wf-trait-default-fn-ret.rs | |\r\n| trait, default fn, where clause | wf-trait-default-fn-where-clause.rs | |\r\n| trait, fn, arg                  | wf-trait-fn-arg.rs | |\r\n| trait, fn, return               | wf-trait-fn-ret.rs | |\r\n| trait, fn, where clause         | wf-trait-fn-where-clause.rs | |\r\n| fn item, argument type          | wf-in-fn-arg.rs | |\r\n| fn item, return type            | wf-in-fn-ret.rs | |\r\n| fn item, where clause           | wf-in-fn-where-clause.rs | |\r\n| inherent impl, where clause     | wf-inherent-impl-where-clause.rs | |\r\n| inherent impl, fn, where clause | wf-inherent-impl-method-where-clause.rs | |\r\n| impl, assoc type default        | wf-impl-associated-type-region.rs | |\r\n|                                 | wf-impl-associated-type-trait.rs | |\r\n| fn type, argument type  | wf-in-fn-type-arg.rs | |\r\n| fn type, return type    | wf-in-fn-type-ret.rs | |\r\n|                         | wf-in-fn-type-static.rs | |\r\n| object type arg | compile-fail/wf-in-obj-type-static.rs | |\r\n|                 | compile-fail/wf-in-obj-type-region.rs | |\r\n| object safety | compile-fail/wf-object-safe.rs | #21953 |\r\n| `fn(T): 'a` affects `T` | compile-fail/wf-outlives-ty-in-fn-or-trait.rs | |\r\n| OutlivesProjection* | compile-fail/associated-types-outlives.rs | #24622 |\r\n| OutlivesProjection* | compile-fail/regions-assoc-type-outlives-container*.rs | |\r\n| OutlivesProjectionComponents | compile-fail/regions-close-associated-type-into-object.rs | |\r\n| implied bounds projection gap | compile-fail/regions-implied-bounds-projection-gap*rs | |\r\n"},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/144251734","html_url":"https://github.com/rust-lang/rust/issues/27579#issuecomment-144251734","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/27579","id":144251734,"user":{"login":"Stebalien","id":310393,"avatar_url":"https://avatars.githubusercontent.com/u/310393?v=3","gravatar_id":"","url":"https://api.github.com/users/Stebalien","html_url":"https://github.com/Stebalien","followers_url":"https://api.github.com/users/Stebalien/followers","following_url":"https://api.github.com/users/Stebalien/following{/other_user}","gists_url":"https://api.github.com/users/Stebalien/gists{/gist_id}","starred_url":"https://api.github.com/users/Stebalien/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Stebalien/subscriptions","organizations_url":"https://api.github.com/users/Stebalien/orgs","repos_url":"https://api.github.com/users/Stebalien/repos","events_url":"https://api.github.com/users/Stebalien/events{/privacy}","received_events_url":"https://api.github.com/users/Stebalien/received_events","type":"User","site_admin":false},"created_at":"2015-09-30T01:34:56Z","updated_at":"2015-09-30T01:34:56Z","body":"Also fixes #21837."}}