{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/1210","repository_url":"https://api.github.com/repos/rust-lang/rfcs","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1210/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1210/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1210/events","html_url":"https://github.com/rust-lang/rfcs/pull/1210","id":94822300,"number":1210,"title":"RFC: impl specialization","user":{"login":"aturon","id":709807,"avatar_url":"https://avatars.githubusercontent.com/u/709807?v=3","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/final-comment-period","name":"final-comment-period","color":"207de5"},{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/T-lang","name":"T-lang","color":"bfd4f2"}],"state":"open","locked":false,"assignee":{"login":"aturon","id":709807,"avatar_url":"https://avatars.githubusercontent.com/u/709807?v=3","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"milestone":null,"comments":332,"created_at":"2015-07-13T22:00:51Z","updated_at":"2016-02-12T18:26:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rfcs/pulls/1210","html_url":"https://github.com/rust-lang/rfcs/pull/1210","diff_url":"https://github.com/rust-lang/rfcs/pull/1210.diff","patch_url":"https://github.com/rust-lang/rfcs/pull/1210.patch"},"body":"This RFC proposes a design for *specialization*, which permits multiple `impl`\r\nblocks to apply to the same type/trait, so long as one of the blocks is clearly\r\n\"more specific\" than the other. The more specific `impl` block is used in a case\r\nof overlap. The design proposed here also supports refining default trait\r\nimplementations based on specifics about the types involved.\r\n\r\nAltogether, this relatively small extension to the trait system yields benefits\r\nfor performance and code reuse, and it lays the groundwork for an \"efficient\r\ninheritance\" scheme that is largely based on the trait system (described in a\r\nforthcoming companion RFC).\r\n\r\n[Rendered](https://github.com/aturon/rfcs/blob/impl-specialization/text/0000-impl-specialization.md)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/183440592","html_url":"https://github.com/rust-lang/rfcs/pull/1210#issuecomment-183440592","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/1210","id":183440592,"user":{"login":"aturon","id":709807,"avatar_url":"https://avatars.githubusercontent.com/u/709807?v=3","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"created_at":"2016-02-12T18:26:22Z","updated_at":"2016-02-12T18:26:22Z","body":"**Procedural note**: we ended up not having time to get to this RFC again in the lang meeting this week, but hope to reach a decision next week."}}