{"action":"created","comment":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/comments/31286192","id":31286192,"diff_hunk":"@@ -89,30 +89,46 @@ pub fn check_pat<'a, 'tcx>(pcx: &pat_ctxt<'a, 'tcx>,\n             let lhs_ty = fcx.expr_ty(&**begin);\n             let rhs_ty = fcx.expr_ty(&**end);\n \n-            let lhs_eq_rhs =\n+            let compat = |t| ty::type_is_numeric(t) || ty::type_is_char(t);\n+            let lhs_compat = compat(lhs_ty);\n+            let rhs_compat = compat(rhs_ty);\n+\n+            if !lhs_compat || !rhs_compat {\n+\n+                let span = if !lhs_compat && !rhs_compat {\n+                    pat.span\n+                } else if !lhs_compat {\n+                    begin.span\n+                } else {\n+                    end.span\n+                };\n+\n+                span_err!(tcx.sess, span, E0029,\n+                          \"only char and numeric types are allowed in range\");\n+                span_note!(tcx.sess, span, \"Start type: {}\\nEnd type: {}\",\n+                    fcx.infcx().ty_to_string(lhs_ty),\n+                    fcx.infcx().ty_to_string(rhs_ty)\n+                );\n+                return;\n+            }\n+\n+            let types_match =\n                 require_same_types(\n-                    tcx, Some(fcx.infcx()), false, pat.span, lhs_ty, rhs_ty,\n+                    tcx, Some(fcx.infcx()), false, end.span, rhs_ty, lhs_ty,\n                     || \"mismatched types in range\".to_string());\n \n-            let numeric_or_char =\n-                lhs_eq_rhs && (ty::type_is_numeric(lhs_ty) || ty::type_is_char(lhs_ty));\n+            if !types_match {\n+                return;\n+            }\n \n-            if numeric_or_char {\n-                match const_eval::compare_lit_exprs(tcx, &**begin, &**end, Some(lhs_ty)) {\n-                    Some(Ordering::Less) |\n-                    Some(Ordering::Equal) => {}\n-                    Some(Ordering::Greater) => {\n-                        span_err!(tcx.sess, begin.span, E0030,\n-                            \"lower range bound must be less than upper\");\n-                    }\n-                    None => {\n-                        span_err!(tcx.sess, begin.span, E0031,\n-                            \"mismatched types in range\");\n-                    }\n+            match const_eval::compare_lit_exprs(tcx, &**begin, &**end, Some(lhs_ty)) {\n+                Some(Ordering::Less) |\n+                Some(Ordering::Equal) => {}\n+                Some(Ordering::Greater) => {\n+                    span_err!(tcx.sess, begin.span, E0030,\n+                        \"lower range bound must be less than or equal to upper\");\n                 }\n-            } else {\n-                span_err!(tcx.sess, begin.span, E0029,\n-                          \"only char and numeric types are allowed in range\");\n+                None => unreachable!()\n             }\n \n             fcx.write_ty(pat.id, lhs_ty);","path":"src/librustc_typeck/check/_match.rs","position":65,"original_position":65,"commit_id":"cd27021d0c21c662244bec5d7068d883147df28b","original_commit_id":"cd27021d0c21c662244bec5d7068d883147df28b","user":{"login":"nrc","id":762626,"avatar_url":"https://avatars.githubusercontent.com/u/762626?v=3","gravatar_id":"","url":"https://api.github.com/users/nrc","html_url":"https://github.com/nrc","followers_url":"https://api.github.com/users/nrc/followers","following_url":"https://api.github.com/users/nrc/following{/other_user}","gists_url":"https://api.github.com/users/nrc/gists{/gist_id}","starred_url":"https://api.github.com/users/nrc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nrc/subscriptions","organizations_url":"https://api.github.com/users/nrc/orgs","repos_url":"https://api.github.com/users/nrc/repos","events_url":"https://api.github.com/users/nrc/events{/privacy}","received_events_url":"https://api.github.com/users/nrc/received_events","type":"User","site_admin":false},"body":"I think so, run the tests to make sure bad things don't happen","created_at":"2015-05-28T22:57:17Z","updated_at":"2015-05-28T22:57:17Z","html_url":"https://github.com/rust-lang/rust/pull/25743#discussion_r31286192","pull_request_url":"https://api.github.com/repos/rust-lang/rust/pulls/25743","_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/comments/31286192"},"html":{"href":"https://github.com/rust-lang/rust/pull/25743#discussion_r31286192"},"pull_request":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/25743"}}},"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/25743","id":36098024,"html_url":"https://github.com/rust-lang/rust/pull/25743","diff_url":"https://github.com/rust-lang/rust/pull/25743.diff","patch_url":"https://github.com/rust-lang/rust/pull/25743.patch","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/25743","number":25743,"state":"open","locked":false,"title":"Improve diagnostic messages for range patterns.","user":{"login":"michaelsproul","id":4452260,"avatar_url":"https://avatars.githubusercontent.com/u/4452260?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelsproul","html_url":"https://github.com/michaelsproul","followers_url":"https://api.github.com/users/michaelsproul/followers","following_url":"https://api.github.com/users/michaelsproul/following{/other_user}","gists_url":"https://api.github.com/users/michaelsproul/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelsproul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelsproul/subscriptions","organizations_url":"https://api.github.com/users/michaelsproul/orgs","repos_url":"https://api.github.com/users/michaelsproul/repos","events_url":"https://api.github.com/users/michaelsproul/events{/privacy}","received_events_url":"https://api.github.com/users/michaelsproul/received_events","type":"User","site_admin":false},"body":"Part of #24407.\r\n\r\nCurrently the diagnostics for range patterns are a bit wrong:\r\n\r\n```rust\r\nfn main() {\r\n    match 5u32 {\r\n        0 ... 10 => (),\r\n        'a' ... 10 => (),\r\n        10 ... 'z' => (),\r\n        \"what\" ... 10 => (),\r\n        \"what\" ... \"well\" => (),\r\n        10 ... \"what\" => ()\r\n    }\r\n}\r\n```\r\n\r\n```\r\nrange.rs:4:9: 4:19 error: mismatched types in range:\r\n expected integral variable,\r\n    found char [E0211]\r\nrange.rs:4         'a' ... 10 => (),\r\n                   ^~~~~~~~~~\r\nrange.rs:4:9: 4:16 error: only char and numeric types are allowed in range [E0029]\r\nrange.rs:4         'a' ... 10 => (),\r\n                   ^~~~~~~\r\nrange.rs:4:9: 4:19 error: mismatched types:\r\n expected `u32`,\r\n    found `char`\r\n(expected u32,\r\n    found char) [E0308]\r\nrange.rs:4         'a' ... 10 => (),\r\n                   ^~~~~~~~~~\r\nrange.rs:5:9: 5:19 error: mismatched types in range:\r\n expected char,\r\n    found integral variable [E0211]\r\nrange.rs:5         10 ... 'z' => (),\r\n                   ^~~~~~~~~~\r\nrange.rs:5:9: 5:15 error: only char and numeric types are allowed in range [E0029]\r\nrange.rs:5         10 ... 'z' => (),\r\n                   ^~~~~~\r\nrange.rs:6:9: 6:22 error: mismatched types in range:\r\n expected integral variable,\r\n    found &-ptr [E0211]\r\nrange.rs:6         \"what\" ... 10 => (),\r\n                   ^~~~~~~~~~~~~\r\nrange.rs:6:9: 6:19 error: only char and numeric types are allowed in range [E0029]\r\nrange.rs:6         \"what\" ... 10 => (),\r\n                   ^~~~~~~~~~\r\nrange.rs:6:9: 6:22 error: mismatched types:\r\n expected `u32`,\r\n    found `&'static str`\r\n(expected u32,\r\n    found &-ptr) [E0308]\r\nrange.rs:6         \"what\" ... 10 => (),\r\n                   ^~~~~~~~~~~~~\r\nrange.rs:7:9: 7:19 error: only char and numeric types are allowed in range [E0029]\r\nrange.rs:7         \"what\" ... \"well\" => (),\r\n                   ^~~~~~~~~~\r\nrange.rs:7:9: 7:26 error: mismatched types:\r\n expected `u32`,\r\n    found `&'static str`\r\n(expected u32,\r\n    found &-ptr) [E0308]\r\nrange.rs:7         \"what\" ... \"well\" => (),\r\n                   ^~~~~~~~~~~~~~~~~\r\nrange.rs:8:9: 8:22 error: mismatched types in range:\r\n expected &-ptr,\r\n    found integral variable [E0211]\r\nrange.rs:8         10 ... \"what\" => ()\r\n                   ^~~~~~~~~~~~~\r\nrange.rs:8:9: 8:15 error: only char and numeric types are allowed in range [E0029]\r\nrange.rs:8         10 ... \"what\" => ()\r\n                   ^~~~~~\r\nerror: aborting due to 12 previous errors\r\n```\r\n\r\nThe problems here are:\r\n\r\n1. The type of the end of the range is used to predict the type of the start (only mildly counter intuitive).\r\n2. E0029 is erroneously generated for `char ... num` and `num ... char`.\r\n2. `u32` is mentioned.\r\n3. Errors which are essentially the same are reported multiple times.\r\n\r\nI've attempted to fix this by checking the requirements in a different order. The output I've achieved for the above example is:\r\n\r\n```\r\n/home/michael/Temp/range.rs:4:17: 4:22 error: mismatched types in range:\r\n expected char,\r\n    found integral variable [E0211]\r\n/home/michael/Temp/range.rs:4         'a' ... 10 => (),\r\n                                              ^~~~~\r\n/home/michael/Temp/range.rs:5:16: 5:22 error: mismatched types in range:\r\n expected integral variable,\r\n    found char [E0211]\r\n/home/michael/Temp/range.rs:5         10 ... 'z' => (),\r\n                                             ^~~~~~\r\n/home/michael/Temp/range.rs:6:9: 6:19 error: only char and numeric types are allowed in range [E0029]\r\n/home/michael/Temp/range.rs:6         \"what\" ... 10 => (),\r\n                                      ^~~~~~~~~~\r\n/home/michael/Temp/range.rs:6:9: 6:19 help: run `rustc --explain E0029` to see a detailed explanation\r\n/home/michael/Temp/range.rs:6:9: 6:19 note: Start type: &'static str\r\nEnd type: _\r\n/home/michael/Temp/range.rs:6         \"what\" ... 10 => (),\r\n                                      ^~~~~~~~~~\r\n/home/michael/Temp/range.rs:7:9: 7:26 error: only char and numeric types are allowed in range [E0029]\r\n/home/michael/Temp/range.rs:7         \"what\" ... \"well\" => (),\r\n                                      ^~~~~~~~~~~~~~~~~\r\n/home/michael/Temp/range.rs:7:9: 7:26 help: run `rustc --explain E0029` to see a detailed explanation\r\n/home/michael/Temp/range.rs:7:9: 7:26 note: Start type: &'static str\r\nEnd type: &'static str\r\n/home/michael/Temp/range.rs:7         \"what\" ... \"well\" => (),\r\n                                      ^~~~~~~~~~~~~~~~~\r\n/home/michael/Temp/range.rs:8:16: 8:25 error: only char and numeric types are allowed in range [E0029]\r\n/home/michael/Temp/range.rs:8         10 ... \"what\" => ()\r\n                                             ^~~~~~~~~\r\n/home/michael/Temp/range.rs:8:16: 8:25 help: run `rustc --explain E0029` to see a detailed explanation\r\n/home/michael/Temp/range.rs:8:16: 8:25 note: Start type: _\r\nEnd type: &'static str\r\n/home/michael/Temp/range.rs:8         10 ... \"what\" => ()\r\n                                             ^~~~~~~~~\r\nerror: aborting due to 5 previous errors\r\n```\r\n\r\nI think this is already tonnes better, but the `Start type/End type` stuff could be neater. I don't think there's really any need to start a `note:` block but I wanted to get some feedback on this. I'd also appreciate advice on how to print the integer types as something other than `_`.","created_at":"2015-05-24T04:33:06Z","updated_at":"2015-05-28T22:57:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fa40d42715d2ecf7a7939b7e5fd689ab53c67a66","assignee":{"login":"nrc","id":762626,"avatar_url":"https://avatars.githubusercontent.com/u/762626?v=3","gravatar_id":"","url":"https://api.github.com/users/nrc","html_url":"https://github.com/nrc","followers_url":"https://api.github.com/users/nrc/followers","following_url":"https://api.github.com/users/nrc/following{/other_user}","gists_url":"https://api.github.com/users/nrc/gists{/gist_id}","starred_url":"https://api.github.com/users/nrc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nrc/subscriptions","organizations_url":"https://api.github.com/users/nrc/orgs","repos_url":"https://api.github.com/users/nrc/repos","events_url":"https://api.github.com/users/nrc/events{/privacy}","received_events_url":"https://api.github.com/users/nrc/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/rust-lang/rust/pulls/25743/commits","review_comments_url":"https://api.github.com/repos/rust-lang/rust/pulls/25743/comments","review_comment_url":"https://api.github.com/repos/rust-lang/rust/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/25743/comments","statuses_url":"https://api.github.com/repos/rust-lang/rust/statuses/cd27021d0c21c662244bec5d7068d883147df28b","head":{"label":"michaelsproul:match-diagnostics","ref":"match-diagnostics","sha":"cd27021d0c21c662244bec5d7068d883147df28b","user":{"login":"michaelsproul","id":4452260,"avatar_url":"https://avatars.githubusercontent.com/u/4452260?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelsproul","html_url":"https://github.com/michaelsproul","followers_url":"https://api.github.com/users/michaelsproul/followers","following_url":"https://api.github.com/users/michaelsproul/following{/other_user}","gists_url":"https://api.github.com/users/michaelsproul/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelsproul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelsproul/subscriptions","organizations_url":"https://api.github.com/users/michaelsproul/orgs","repos_url":"https://api.github.com/users/michaelsproul/repos","events_url":"https://api.github.com/users/michaelsproul/events{/privacy}","received_events_url":"https://api.github.com/users/michaelsproul/received_events","type":"User","site_admin":false},"repo":{"id":22588239,"name":"rust","full_name":"michaelsproul/rust","owner":{"login":"michaelsproul","id":4452260,"avatar_url":"https://avatars.githubusercontent.com/u/4452260?v=3","gravatar_id":"","url":"https://api.github.com/users/michaelsproul","html_url":"https://github.com/michaelsproul","followers_url":"https://api.github.com/users/michaelsproul/followers","following_url":"https://api.github.com/users/michaelsproul/following{/other_user}","gists_url":"https://api.github.com/users/michaelsproul/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelsproul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelsproul/subscriptions","organizations_url":"https://api.github.com/users/michaelsproul/orgs","repos_url":"https://api.github.com/users/michaelsproul/repos","events_url":"https://api.github.com/users/michaelsproul/events{/privacy}","received_events_url":"https://api.github.com/users/michaelsproul/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/michaelsproul/rust","description":"a safe, concurrent, practical language","fork":true,"url":"https://api.github.com/repos/michaelsproul/rust","forks_url":"https://api.github.com/repos/michaelsproul/rust/forks","keys_url":"https://api.github.com/repos/michaelsproul/rust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/michaelsproul/rust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/michaelsproul/rust/teams","hooks_url":"https://api.github.com/repos/michaelsproul/rust/hooks","issue_events_url":"https://api.github.com/repos/michaelsproul/rust/issues/events{/number}","events_url":"https://api.github.com/repos/michaelsproul/rust/events","assignees_url":"https://api.github.com/repos/michaelsproul/rust/assignees{/user}","branches_url":"https://api.github.com/repos/michaelsproul/rust/branches{/branch}","tags_url":"https://api.github.com/repos/michaelsproul/rust/tags","blobs_url":"https://api.github.com/repos/michaelsproul/rust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/michaelsproul/rust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/michaelsproul/rust/git/refs{/sha}","trees_url":"https://api.github.com/repos/michaelsproul/rust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/michaelsproul/rust/statuses/{sha}","languages_url":"https://api.github.com/repos/michaelsproul/rust/languages","stargazers_url":"https://api.github.com/repos/michaelsproul/rust/stargazers","contributors_url":"https://api.github.com/repos/michaelsproul/rust/contributors","subscribers_url":"https://api.github.com/repos/michaelsproul/rust/subscribers","subscription_url":"https://api.github.com/repos/michaelsproul/rust/subscription","commits_url":"https://api.github.com/repos/michaelsproul/rust/commits{/sha}","git_commits_url":"https://api.github.com/repos/michaelsproul/rust/git/commits{/sha}","comments_url":"https://api.github.com/repos/michaelsproul/rust/comments{/number}","issue_comment_url":"https://api.github.com/repos/michaelsproul/rust/issues/comments{/number}","contents_url":"https://api.github.com/repos/michaelsproul/rust/contents/{+path}","compare_url":"https://api.github.com/repos/michaelsproul/rust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/michaelsproul/rust/merges","archive_url":"https://api.github.com/repos/michaelsproul/rust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/michaelsproul/rust/downloads","issues_url":"https://api.github.com/repos/michaelsproul/rust/issues{/number}","pulls_url":"https://api.github.com/repos/michaelsproul/rust/pulls{/number}","milestones_url":"https://api.github.com/repos/michaelsproul/rust/milestones{/number}","notifications_url":"https://api.github.com/repos/michaelsproul/rust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/michaelsproul/rust/labels{/name}","releases_url":"https://api.github.com/repos/michaelsproul/rust/releases{/id}","created_at":"2014-08-04T01:29:27Z","updated_at":"2015-01-16T00:38:00Z","pushed_at":"2015-05-24T04:29:58Z","git_url":"git://github.com/michaelsproul/rust.git","ssh_url":"git@github.com:michaelsproul/rust.git","clone_url":"https://github.com/michaelsproul/rust.git","svn_url":"https://github.com/michaelsproul/rust","homepage":"http://www.rust-lang.org","size":291030,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"rust-lang:master","ref":"master","sha":"0fc0476e6ae2bcc5cce75d78548cf037b6692a97","user":{"login":"rust-lang","id":5430905,"avatar_url":"https://avatars.githubusercontent.com/u/5430905?v=3","gravatar_id":"","url":"https://api.github.com/users/rust-lang","html_url":"https://github.com/rust-lang","followers_url":"https://api.github.com/users/rust-lang/followers","following_url":"https://api.github.com/users/rust-lang/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang/subscriptions","organizations_url":"https://api.github.com/users/rust-lang/orgs","repos_url":"https://api.github.com/users/rust-lang/repos","events_url":"https://api.github.com/users/rust-lang/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang/received_events","type":"Organization","site_admin":false},"repo":{"id":724712,"name":"rust","full_name":"rust-lang/rust","owner":{"login":"rust-lang","id":5430905,"avatar_url":"https://avatars.githubusercontent.com/u/5430905?v=3","gravatar_id":"","url":"https://api.github.com/users/rust-lang","html_url":"https://github.com/rust-lang","followers_url":"https://api.github.com/users/rust-lang/followers","following_url":"https://api.github.com/users/rust-lang/following{/other_user}","gists_url":"https://api.github.com/users/rust-lang/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-lang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-lang/subscriptions","organizations_url":"https://api.github.com/users/rust-lang/orgs","repos_url":"https://api.github.com/users/rust-lang/repos","events_url":"https://api.github.com/users/rust-lang/events{/privacy}","received_events_url":"https://api.github.com/users/rust-lang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rust-lang/rust","description":"A safe, concurrent, practical language.","fork":false,"url":"https://api.github.com/repos/rust-lang/rust","forks_url":"https://api.github.com/repos/rust-lang/rust/forks","keys_url":"https://api.github.com/repos/rust-lang/rust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rust-lang/rust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rust-lang/rust/teams","hooks_url":"https://api.github.com/repos/rust-lang/rust/hooks","issue_events_url":"https://api.github.com/repos/rust-lang/rust/issues/events{/number}","events_url":"https://api.github.com/repos/rust-lang/rust/events","assignees_url":"https://api.github.com/repos/rust-lang/rust/assignees{/user}","branches_url":"https://api.github.com/repos/rust-lang/rust/branches{/branch}","tags_url":"https://api.github.com/repos/rust-lang/rust/tags","blobs_url":"https://api.github.com/repos/rust-lang/rust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rust-lang/rust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rust-lang/rust/git/refs{/sha}","trees_url":"https://api.github.com/repos/rust-lang/rust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rust-lang/rust/statuses/{sha}","languages_url":"https://api.github.com/repos/rust-lang/rust/languages","stargazers_url":"https://api.github.com/repos/rust-lang/rust/stargazers","contributors_url":"https://api.github.com/repos/rust-lang/rust/contributors","subscribers_url":"https://api.github.com/repos/rust-lang/rust/subscribers","subscription_url":"https://api.github.com/repos/rust-lang/rust/subscription","commits_url":"https://api.github.com/repos/rust-lang/rust/commits{/sha}","git_commits_url":"https://api.github.com/repos/rust-lang/rust/git/commits{/sha}","comments_url":"https://api.github.com/repos/rust-lang/rust/comments{/number}","issue_comment_url":"https://api.github.com/repos/rust-lang/rust/issues/comments{/number}","contents_url":"https://api.github.com/repos/rust-lang/rust/contents/{+path}","compare_url":"https://api.github.com/repos/rust-lang/rust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rust-lang/rust/merges","archive_url":"https://api.github.com/repos/rust-lang/rust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rust-lang/rust/downloads","issues_url":"https://api.github.com/repos/rust-lang/rust/issues{/number}","pulls_url":"https://api.github.com/repos/rust-lang/rust/pulls{/number}","milestones_url":"https://api.github.com/repos/rust-lang/rust/milestones{/number}","notifications_url":"https://api.github.com/repos/rust-lang/rust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rust-lang/rust/labels{/name}","releases_url":"https://api.github.com/repos/rust-lang/rust/releases{/id}","created_at":"2010-06-16T20:39:03Z","updated_at":"2015-05-28T22:30:23Z","pushed_at":"2015-05-28T22:46:05Z","git_url":"git://github.com/rust-lang/rust.git","ssh_url":"git@github.com:rust-lang/rust.git","clone_url":"https://github.com/rust-lang/rust.git","svn_url":"https://github.com/rust-lang/rust","homepage":"http://www.rust-lang.org","size":665584,"stargazers_count":11846,"watchers_count":11846,"language":"Rust","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2275,"mirror_url":null,"open_issues_count":2068,"forks":2275,"open_issues":2068,"watchers":11846,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/25743"},"html":{"href":"https://github.com/rust-lang/rust/pull/25743"},"issue":{"href":"https://api.github.com/repos/rust-lang/rust/issues/25743"},"comments":{"href":"https://api.github.com/repos/rust-lang/rust/issues/25743/comments"},"review_comments":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/25743/comments"},"review_comment":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/25743/commits"},"statuses":{"href":"https://api.github.com/repos/rust-lang/rust/statuses/cd27021d0c21c662244bec5d7068d883147df28b"}}}}