{"action":"created","comment":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/comments/62713511","id":62713511,"diff_hunk":"@@ -103,16 +105,191 @@ pub fn report_projection_error<'a, 'tcx>(infcx: &InferCtxt<'a, 'tcx>,\n     }\n }\n \n+fn impl_substs<'a, 'tcx>(fcx: &InferCtxt<'a, 'tcx>,\n+                         did: DefId,\n+                         obligation: PredicateObligation<'tcx>)\n+                         -> subst::Substs<'tcx> {\n+    let tcx = fcx.tcx;\n+\n+    let ity = tcx.lookup_item_type(did);\n+    let (tps, rps, _) =\n+        (ity.generics.types.get_slice(subst::TypeSpace),\n+         ity.generics.regions.get_slice(subst::TypeSpace),\n+         ity.ty);\n+\n+    let rps = fcx.region_vars_for_defs(obligation.cause.span, rps);\n+    let mut substs = subst::Substs::new(\n+        subst::VecPerParamSpace::empty(),\n+        subst::VecPerParamSpace::new(rps, Vec::new(), Vec::new()));\n+    fcx.type_vars_for_defs(obligation.cause.span, subst::ParamSpace::TypeSpace, &mut substs, tps);\n+    substs\n+}\n+\n+trait AssociatedWeight {\n+    fn get_weight(&self) -> usize;\n+}\n+\n+impl<'a> AssociatedWeight for TypeVariants<'a> {\n+    // First number is for \"global\" weight and second number is for bigger precision","path":"src/librustc/traits/error_reporting.rs","position":49,"original_position":49,"commit_id":"ce3019dee9fbb75c9d5f0ae623a1cbefe6a3d0c1","original_commit_id":"ce3019dee9fbb75c9d5f0ae623a1cbefe6a3d0c1","user":{"login":"pnkfelix","id":173127,"avatar_url":"https://avatars.githubusercontent.com/u/173127?v=3","gravatar_id":"","url":"https://api.github.com/users/pnkfelix","html_url":"https://github.com/pnkfelix","followers_url":"https://api.github.com/users/pnkfelix/followers","following_url":"https://api.github.com/users/pnkfelix/following{/other_user}","gists_url":"https://api.github.com/users/pnkfelix/gists{/gist_id}","starred_url":"https://api.github.com/users/pnkfelix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pnkfelix/subscriptions","organizations_url":"https://api.github.com/users/pnkfelix/orgs","repos_url":"https://api.github.com/users/pnkfelix/repos","events_url":"https://api.github.com/users/pnkfelix/events{/privacy}","received_events_url":"https://api.github.com/users/pnkfelix/received_events","type":"User","site_admin":false},"body":"(i'm inclined to agree with @durka; it doesn't seem like it would be that onerous to write the `match` using `(u32, u32)` or something.)","created_at":"2016-05-10T17:18:26Z","updated_at":"2016-05-10T17:18:26Z","html_url":"https://github.com/rust-lang/rust/pull/33401#discussion_r62713511","pull_request_url":"https://api.github.com/repos/rust-lang/rust/pulls/33401","_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/comments/62713511"},"html":{"href":"https://github.com/rust-lang/rust/pull/33401#discussion_r62713511"},"pull_request":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/33401"}}},"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/33401","id":68895041,"html_url":"https://github.com/rust-lang/rust/pull/33401","diff_url":"https://github.com/rust-lang/rust/pull/33401.diff","patch_url":"https://github.com/rust-lang/rust/pull/33401.patch","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/33401","number":33401,"state":"open","locked":false,"title":"Add rustc_on_unimplemented for Index implementation on slice","user":{"login":"GuillaumeGomez","id":3050060,"avatar_url":"https://avatars.githubusercontent.com/u/3050060?v=3","gravatar_id":"","url":"https://api.github.com/users/GuillaumeGomez","html_url":"https://github.com/GuillaumeGomez","followers_url":"https://api.github.com/users/GuillaumeGomez/followers","following_url":"https://api.github.com/users/GuillaumeGomez/following{/other_user}","gists_url":"https://api.github.com/users/GuillaumeGomez/gists{/gist_id}","starred_url":"https://api.github.com/users/GuillaumeGomez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GuillaumeGomez/subscriptions","organizations_url":"https://api.github.com/users/GuillaumeGomez/orgs","repos_url":"https://api.github.com/users/GuillaumeGomez/repos","events_url":"https://api.github.com/users/GuillaumeGomez/events{/privacy}","received_events_url":"https://api.github.com/users/GuillaumeGomez/received_events","type":"User","site_admin":false},"body":"Reopening of #31071.\r\n\r\nIt also extends the possibility of `#[rustc_on_unimplemented]` by providing a small type filter in order to find the ones which corresponds the most.\r\n\r\nr? @pnkfelix ","created_at":"2016-05-04T16:50:17Z","updated_at":"2016-05-10T17:18:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"532fb73a1fb5a6abb915bd4a8ce7714716cd8d3b","assignee":{"login":"pnkfelix","id":173127,"avatar_url":"https://avatars.githubusercontent.com/u/173127?v=3","gravatar_id":"","url":"https://api.github.com/users/pnkfelix","html_url":"https://github.com/pnkfelix","followers_url":"https://api.github.com/users/pnkfelix/followers","following_url":"https://api.github.com/users/pnkfelix/following{/other_user}","gists_url":"https://api.github.com/users/pnkfelix/gists{/gist_id}","starred_url":"https://api.github.com/users/pnkfelix/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pnkfelix/subscriptions","organizations_url":"https://api.github.com/users/pnkfelix/orgs","repos_url":"https://api.github.com/users/pnkfelix/repos","events_url":"https://api.github.com/users/pnkfelix/events{/privacy}","received_events_url":"https://api.github.com/users/pnkfelix/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/rust-lang/rust/pulls/33401/commits","review_comments_url":"https://api.github.com/repos/rust-lang/rust/pulls/33401/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/33401/comments","statuses_url":"https://api.github.com/repos/rust-lang/rust/statuses/ce3019dee9fbb75c9d5f0ae623a1cbefe6a3d0c1","head":{"label":"GuillaumeGomez:index_indication","ref":"index_indication","sha":"ce3019dee9fbb75c9d5f0ae623a1cbefe6a3d0c1","user":{"login":"GuillaumeGomez","id":3050060,"avatar_url":"https://avatars.githubusercontent.com/u/3050060?v=3","gravatar_id":"","url":"https://api.github.com/users/GuillaumeGomez","html_url":"https://github.com/GuillaumeGomez","followers_url":"https://api.github.com/users/GuillaumeGomez/followers","following_url":"https://api.github.com/users/GuillaumeGomez/following{/other_user}","gists_url":"https://api.github.com/users/GuillaumeGomez/gists{/gist_id}","starred_url":"https://api.github.com/users/GuillaumeGomez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GuillaumeGomez/subscriptions","organizations_url":"https://api.github.com/users/GuillaumeGomez/orgs","repos_url":"https://api.github.com/users/GuillaumeGomez/repos","events_url":"https://api.github.com/users/GuillaumeGomez/events{/privacy}","received_events_url":"https://api.github.com/users/GuillaumeGomez/received_events","type":"User","site_admin":false},"repo":{"id":32751288,"name":"rust","full_name":"GuillaumeGomez/rust","owner":{"login":"GuillaumeGomez","id":3050060,"avatar_url":"https://avatars.githubusercontent.com/u/3050060?v=3","gravatar_id":"","url":"https://api.github.com/users/GuillaumeGomez","html_url":"https://github.com/GuillaumeGomez","followers_url":"https://api.github.com/users/GuillaumeGomez/followers","following_url":"https://api.github.com/users/GuillaumeGomez/following{/other_user}","gists_url":"https://api.github.com/users/GuillaumeGomez/gists{/gist_id}","starred_url":"https://api.github.com/users/GuillaumeGomez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GuillaumeGomez/subscriptions","organizations_url":"https://api.github.com/users/GuillaumeGomez/orgs","repos_url":"https://api.github.com/users/GuillaumeGomez/repos","events_url":"https://api.github.com/users/GuillaumeGomez/events{/privacy}","received_events_url":"https://api.github.com/users/GuillaumeGomez/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/GuillaumeGomez/rust","description":"a safe, concurrent, practical language","fork":true,"url":"https://api.github.com/repos/GuillaumeGomez/rust","forks_url":"https://api.github.com/repos/GuillaumeGomez/rust/forks","keys_url":"https://api.github.com/repos/GuillaumeGomez/rust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GuillaumeGomez/rust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GuillaumeGomez/rust/teams","hooks_url":"https://api.github.com/repos/GuillaumeGomez/rust/hooks","issue_events_url":"https://api.github.com/repos/GuillaumeGomez/rust/issues/events{/number}","events_url":"https://api.github.com/repos/GuillaumeGomez/rust/events","assignees_url":"https://api.github.com/repos/GuillaumeGomez/rust/assignees{/user}","branches_url":"https://api.github.com/repos/GuillaumeGomez/rust/branches{/branch}","tags_url":"https://api.github.com/repos/GuillaumeGomez/rust/tags","blobs_url":"https://api.github.com/repos/GuillaumeGomez/rust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GuillaumeGomez/rust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GuillaumeGomez/rust/git/refs{/sha}","trees_url":"https://api.github.com/repos/GuillaumeGomez/rust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GuillaumeGomez/rust/statuses/{sha}","languages_url":"https://api.github.com/repos/GuillaumeGomez/rust/languages","stargazers_url":"https://api.github.com/repos/GuillaumeGomez/rust/stargazers","contributors_url":"https://api.github.com/repos/GuillaumeGomez/rust/contributors","subscribers_url":"https://api.github.com/repos/GuillaumeGomez/rust/subscribers","subscription_url":"https://api.github.com/repos/GuillaumeGomez/rust/subscription","commits_url":"https://api.github.com/repos/GuillaumeGomez/rust/commits{/sha}","git_commits_url":"https://api.github.com/repos/GuillaumeGomez/rust/git/commits{/sha}","comments_url":"https://api.github.com/repos/GuillaumeGomez/rust/comments{/number}","issue_comment_url":"https://api.github.com/repos/GuillaumeGomez/rust/issues/comments{/number}","contents_url":"https://api.github.com/repos/GuillaumeGomez/rust/contents/{+path}","compare_url":"https://api.github.com/repos/GuillaumeGomez/rust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GuillaumeGomez/rust/merges","archive_url":"https://api.github.com/repos/GuillaumeGomez/rust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GuillaumeGomez/rust/downloads","issues_url":"https://api.github.com/repos/GuillaumeGomez/rust/issues{/number}","pulls_url":"https://api.github.com/repos/GuillaumeGomez/rust/pulls{/number}","milestones_url":"https://api.github.com/repos/GuillaumeGomez/rust/milestones{/number}","notifications_url":"https://api.github.com/repos/GuillaumeGomez/rust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GuillaumeGomez/rust/labels{/name}","releases_url":"https://api.github.com/repos/GuillaumeGomez/rust/releases{/id}","deployments_url":"https://api.github.com/repos/GuillaumeGomez/rust/deployments","created_at":"2015-03-23T18:35:10Z","updated_at":"2016-01-14T21:53:52Z","pushed_at":"2016-05-10T16:59:18Z","git_url":"git://github.com/GuillaumeGomez/rust.git","ssh_url":"git@github.com:GuillaumeGomez/rust.git","clone_url":"https://github.com/GuillaumeGomez/rust.git","svn_url":"https://github.com/GuillaumeGomez/rust","homepage":"http://www.rust-lang.org","size":296866,"stargazers_count":0,"watchers_count":0,"language":"Rust","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"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":"413bafdabf5c5716fd823ac9a6232c48e2ba2902","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}","deployments_url":"https://api.github.com/repos/rust-lang/rust/deployments","created_at":"2010-06-16T20:39:03Z","updated_at":"2016-05-10T15:57:40Z","pushed_at":"2016-05-10T16:25:21Z","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":491376,"stargazers_count":16596,"watchers_count":16596,"language":"Rust","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3177,"mirror_url":null,"open_issues_count":2502,"forks":3177,"open_issues":2502,"watchers":16596,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/33401"},"html":{"href":"https://github.com/rust-lang/rust/pull/33401"},"issue":{"href":"https://api.github.com/repos/rust-lang/rust/issues/33401"},"comments":{"href":"https://api.github.com/repos/rust-lang/rust/issues/33401/comments"},"review_comments":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/33401/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/33401/commits"},"statuses":{"href":"https://api.github.com/repos/rust-lang/rust/statuses/ce3019dee9fbb75c9d5f0ae623a1cbefe6a3d0c1"}}}}