{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/55880","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/55880/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/55880/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/55880/events","html_url":"https://github.com/rust-lang/rust/pull/55880","id":379564154,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI5OTc4NzI0","number":55880,"title":"stabilize `Rc`, `Arc` and `Pin` as method receivers","user":{"login":"mikeyhew","id":6751033,"node_id":"MDQ6VXNlcjY3NTEwMzM=","avatar_url":"https://avatars2.githubusercontent.com/u/6751033?v=4","gravatar_id":"","url":"https://api.github.com/users/mikeyhew","html_url":"https://github.com/mikeyhew","followers_url":"https://api.github.com/users/mikeyhew/followers","following_url":"https://api.github.com/users/mikeyhew/following{/other_user}","gists_url":"https://api.github.com/users/mikeyhew/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeyhew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeyhew/subscriptions","organizations_url":"https://api.github.com/users/mikeyhew/orgs","repos_url":"https://api.github.com/users/mikeyhew/repos","events_url":"https://api.github.com/users/mikeyhew/events{/privacy}","received_events_url":"https://api.github.com/users/mikeyhew/received_events","type":"User","site_admin":false},"labels":[{"id":583426710,"node_id":"MDU6TGFiZWw1ODM0MjY3MTA=","url":"https://api.github.com/repos/rust-lang/rust/labels/S-waiting-on-review","name":"S-waiting-on-review","color":"d3dddd","default":false},{"id":211668062,"node_id":"MDU6TGFiZWwyMTE2NjgwNjI=","url":"https://api.github.com/repos/rust-lang/rust/labels/T-libs","name":"T-libs","color":"bfd4f2","default":false},{"id":223796632,"node_id":"MDU6TGFiZWwyMjM3OTY2MzI=","url":"https://api.github.com/repos/rust-lang/rust/labels/relnotes","name":"relnotes","color":"fad8c7","default":false}],"state":"open","locked":false,"assignee":{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","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},"assignees":[{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","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}],"milestone":null,"comments":17,"created_at":"2018-11-11T21:16:18Z","updated_at":"2018-12-11T22:47:32Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/55880","html_url":"https://github.com/rust-lang/rust/pull/55880","diff_url":"https://github.com/rust-lang/rust/pull/55880.diff","patch_url":"https://github.com/rust-lang/rust/pull/55880.patch"},"body":"This introduces a new `Receiver` trait, which requires `Self: Deref`. If the `arbitrary_self_types` feature is not enabled, then in `check_method_receiver` we require not only that the receiver type transitively derefs to `Self`, but also that each type in the deref chain implements `Receiver` in addition to `Deref`.\r\n\r\nBy keeping the `Receiver` trait unstable, we ensure that only receiver types from the standard library can be used in stable Rust.\r\n\r\nThis allows the following to be used as the type of `self`, without a feature flag:\r\n\r\n- `Self`, `&Self`, `&mut Self`, `Box<Self>` (already allowed)\r\n- `Rc<Self>`, `Arc<Self>`\r\n- `Pin<&Self>`, `Pin<&mut Self>`, etc.\r\n- any combination of the above, e.g. `&Box<Rc<Self>>`, `Pin<Pin<Pin<&mut Self>>>`\r\n\r\nAn FCP is required here to stabilize `Rc` and `Arc` as receiver types. As a more conservative approach, we could remove the `impl`s of `Receiver` for `Rc` and `Arc` for now, and add them back later pending an RFC. We would still allow `Pin` to be used as a receiver type without a feature flag, but that wouldn't be a stabilization because `Pin` still requires the `pin` feature. EDIT: An FCP would still be required because we would be allowing things like `&&Self`.\r\n\r\ncc #44874 #55786 "},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/446392177","html_url":"https://github.com/rust-lang/rust/pull/55880#issuecomment-446392177","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/55880","id":446392177,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NjM5MjE3Nw==","user":{"login":"mikeyhew","id":6751033,"node_id":"MDQ6VXNlcjY3NTEwMzM=","avatar_url":"https://avatars2.githubusercontent.com/u/6751033?v=4","gravatar_id":"","url":"https://api.github.com/users/mikeyhew","html_url":"https://github.com/mikeyhew","followers_url":"https://api.github.com/users/mikeyhew/followers","following_url":"https://api.github.com/users/mikeyhew/following{/other_user}","gists_url":"https://api.github.com/users/mikeyhew/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeyhew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeyhew/subscriptions","organizations_url":"https://api.github.com/users/mikeyhew/orgs","repos_url":"https://api.github.com/users/mikeyhew/repos","events_url":"https://api.github.com/users/mikeyhew/events{/privacy}","received_events_url":"https://api.github.com/users/mikeyhew/received_events","type":"User","site_admin":false},"created_at":"2018-12-11T22:47:32Z","updated_at":"2018-12-11T22:47:32Z","author_association":"CONTRIBUTOR","body":"@withoutboats I'm not sure which comment you are referring to, so can't clarify what I meant. But I think my issue with stabilizing composed receivers was that they seemed like something that could be controversial, at least more so than `Pin`, `Rc` and `Arc`. And at the time I didn't know they were going to be used for the Futures API, so it seemed like it was better to wait for an RFC."}}
{"actor":{"display_login":"mikeyhew"}}