{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/23104","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/23104/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/23104/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/23104/events","html_url":"https://github.com/rust-lang/rust/pull/23104","id":60056522,"number":23104,"title":"allow inherent implementations on primitives, remove some extension traits","user":{"login":"japaric","id":5018213,"avatar_url":"https://avatars.githubusercontent.com/u/5018213?v=3","gravatar_id":"","url":"https://api.github.com/users/japaric","html_url":"https://github.com/japaric","followers_url":"https://api.github.com/users/japaric/followers","following_url":"https://api.github.com/users/japaric/following{/other_user}","gists_url":"https://api.github.com/users/japaric/gists{/gist_id}","starred_url":"https://api.github.com/users/japaric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/japaric/subscriptions","organizations_url":"https://api.github.com/users/japaric/orgs","repos_url":"https://api.github.com/users/japaric/repos","events_url":"https://api.github.com/users/japaric/events{/privacy}","received_events_url":"https://api.github.com/users/japaric/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"brson","id":147214,"avatar_url":"https://avatars.githubusercontent.com/u/147214?v=3","gravatar_id":"","url":"https://api.github.com/users/brson","html_url":"https://github.com/brson","followers_url":"https://api.github.com/users/brson/followers","following_url":"https://api.github.com/users/brson/following{/other_user}","gists_url":"https://api.github.com/users/brson/gists{/gist_id}","starred_url":"https://api.github.com/users/brson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brson/subscriptions","organizations_url":"https://api.github.com/users/brson/orgs","repos_url":"https://api.github.com/users/brson/repos","events_url":"https://api.github.com/users/brson/events{/privacy}","received_events_url":"https://api.github.com/users/brson/received_events","type":"User","site_admin":false},"milestone":null,"comments":14,"created_at":"2015-03-06T04:04:18Z","updated_at":"2015-03-12T03:23:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/23104","html_url":"https://github.com/rust-lang/rust/pull/23104","diff_url":"https://github.com/rust-lang/rust/pull/23104.diff","patch_url":"https://github.com/rust-lang/rust/pull/23104.patch"},"body":"- Allow inherent implementations on `char`, `str`, `[T]`, `*const T`, `*mut T` and all the numeric primitives.\r\n- copy `unicode::char::CharExt` methods into `impl char`\r\n- remove `unicode::char::CharExt`, its re-export `std::char::CharExt` and `CharExt` from the prelude\r\n- copy `collections::str::StrExt` methods into `impl str`\r\n- remove `collections::str::StrExt` its re-export `std::str::StrExt`, and `StrExt` from the prelude\r\n- copy `collections::slice::SliceExt` methods into `impl<T> [T]`\r\n- remove `collections::slice::SliceExt` its re-export `std::slice::SliceExt`, and `SliceExt` from the prelude\r\n- copy `core::ptr::PtrExt` methods into `impl<T> *const T`\r\n- remove `core::ptr::PtrExt` its re-export `std::ptr::PtrExt`, and `PtrExt` from the prelude\r\n- copy `core::ptr::PtrExt` and `core::ptr::MutPtrExt` methods into `impl<T> *mut T`\r\n- remove `core::ptr::MutPtrExt` its re-export `std::ptr::MutPtrExt`, and `MutPtrExt` from the prelude\r\n- copy `core::num::Int` and `core::num::SignedInt` methods into `impl i{8,16,32,64,size}`\r\n- copy `core::num::Int` and `core::num::UnsignedInt` methods into `impl u{8,16,32,64,size}`\r\n- remove `core::num::UnsignedInt` and its re-export `std::num::UnsignedInt`\r\n- move `collections` tests into its own crate: `collectionstest`\r\n- copy `core::num::Float` methods into `impl f{32,64}`\r\n\r\nBecause this PR removes several traits, this is a [breaking-change], however functionality remains unchanged and breakage due to unresolved imports should be minimal. If you encounter an error due to an unresolved import, simply remove the import:\r\n\r\n``` diff\r\n  fn main() {\r\n-     use std::num::UnsignedInt;  //~ error: unresolved import `std::num::UnsignedInt`.\r\n-\r\n      println!(\"{}\", 8_usize.is_power_of_two());\r\n  }\r\n```\r\n\r\n---\r\n\r\ncc  #16862\r\n[preview docs](http://japaric.github.io/inherent/std/index.html)\r\n[unicode::char](http://japaric.github.io/inherent/unicode/primitive.char.html)\r\n[collections::str](http://japaric.github.io/inherent/collections/primitive.str.html)"},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/78417415","html_url":"https://github.com/rust-lang/rust/pull/23104#issuecomment-78417415","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/23104","id":78417415,"user":{"login":"japaric","id":5018213,"avatar_url":"https://avatars.githubusercontent.com/u/5018213?v=3","gravatar_id":"","url":"https://api.github.com/users/japaric","html_url":"https://github.com/japaric","followers_url":"https://api.github.com/users/japaric/followers","following_url":"https://api.github.com/users/japaric/following{/other_user}","gists_url":"https://api.github.com/users/japaric/gists{/gist_id}","starred_url":"https://api.github.com/users/japaric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/japaric/subscriptions","organizations_url":"https://api.github.com/users/japaric/orgs","repos_url":"https://api.github.com/users/japaric/repos","events_url":"https://api.github.com/users/japaric/events{/privacy}","received_events_url":"https://api.github.com/users/japaric/received_events","type":"User","site_admin":false},"created_at":"2015-03-12T03:23:23Z","updated_at":"2015-03-12T03:23:23Z","body":"I've re-enabled the tests after moving them back to libcollections (see two last commits). I'll double check the docs and rebase after that. But the review process can already start ;-)."}}