{"action":"created","comment":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/comments/111872725","pull_request_review_id":33143643,"id":111872725,"diff_hunk":"@@ -0,0 +1,42 @@\n+// Copyright 2016 The Rust Project Developers. See the COPYRIGHT\n+// file at the top-level directory of this distribution and at\n+// http://rust-lang.org/COPYRIGHT.\n+//\n+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or\n+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license\n+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your\n+// option. This file may not be copied, modified, or distributed\n+// except according to those terms.\n+\n+use std::cell::RefCell;\n+use std::rc::Rc;\n+use rustc::ty::TyCtxt;\n+use trans_item::TransItem;\n+use util::nodemap::FxHashMap;\n+\n+// In the SymbolCache we collect the symbol names of translation items\n+// and cache them for later reference. This is just a performance\n+// optimization and the cache is populated lazilly; symbol names of\n+// translation items are deterministic and fully defined by the item.\n+// Thus they can always be recomputed if needed.\n+\n+pub struct SymbolCache<'a, 'tcx: 'a> {\n+    tcx: TyCtxt<'a, 'tcx, 'tcx>,\n+    index: RefCell<FxHashMap<TransItem<'tcx>, Rc<String>>>,","path":"src/librustc_trans/symbol_cache.rs","position":25,"original_position":25,"commit_id":"e3c3b802b40c1c0131de1f3304a30713167acc29","original_commit_id":"e3c3b802b40c1c0131de1f3304a30713167acc29","user":{"login":"eddyb","id":77424,"avatar_url":"https://avatars1.githubusercontent.com/u/77424?v=3","gravatar_id":"","url":"https://api.github.com/users/eddyb","html_url":"https://github.com/eddyb","followers_url":"https://api.github.com/users/eddyb/followers","following_url":"https://api.github.com/users/eddyb/following{/other_user}","gists_url":"https://api.github.com/users/eddyb/gists{/gist_id}","starred_url":"https://api.github.com/users/eddyb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eddyb/subscriptions","organizations_url":"https://api.github.com/users/eddyb/orgs","repos_url":"https://api.github.com/users/eddyb/repos","events_url":"https://api.github.com/users/eddyb/events{/privacy}","received_events_url":"https://api.github.com/users/eddyb/received_events","type":"User","site_admin":false},"body":"Could this use the interned `Symbol` instead?","created_at":"2017-04-18T05:18:57Z","updated_at":"2017-04-18T05:20:21Z","html_url":"https://github.com/rust-lang/rust/pull/41355#discussion_r111872725","pull_request_url":"https://api.github.com/repos/rust-lang/rust/pulls/41355","_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/comments/111872725"},"html":{"href":"https://github.com/rust-lang/rust/pull/41355#discussion_r111872725"},"pull_request":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/41355"}}},"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/41355","id":116233820,"html_url":"https://github.com/rust-lang/rust/pull/41355","diff_url":"https://github.com/rust-lang/rust/pull/41355.diff","patch_url":"https://github.com/rust-lang/rust/pull/41355.patch","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/41355","number":41355,"state":"open","locked":false,"title":"Refactor trans some more to pave way for incremental compilation","user":{"login":"nikomatsakis","id":155238,"avatar_url":"https://avatars3.githubusercontent.com/u/155238?v=3","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},"body":"Various refactorings paving the way for the newer approach to incremental compilation (And, in particular, to \"query-ifying\" trans). My partial goal is to remove `SharedCrateContext`; this PR gets about as far as I can easily get before starting to really want the red/green algorithm. \r\n\r\nr? @eddyb \r\ncc @michaelwoerister ","created_at":"2017-04-18T01:24:00Z","updated_at":"2017-04-18T05:20:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"469cd22fe9c812adbfa9a2748c4532a00a73eac5","assignee":{"login":"eddyb","id":77424,"avatar_url":"https://avatars1.githubusercontent.com/u/77424?v=3","gravatar_id":"","url":"https://api.github.com/users/eddyb","html_url":"https://github.com/eddyb","followers_url":"https://api.github.com/users/eddyb/followers","following_url":"https://api.github.com/users/eddyb/following{/other_user}","gists_url":"https://api.github.com/users/eddyb/gists{/gist_id}","starred_url":"https://api.github.com/users/eddyb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eddyb/subscriptions","organizations_url":"https://api.github.com/users/eddyb/orgs","repos_url":"https://api.github.com/users/eddyb/repos","events_url":"https://api.github.com/users/eddyb/events{/privacy}","received_events_url":"https://api.github.com/users/eddyb/received_events","type":"User","site_admin":false},"assignees":[{"login":"eddyb","id":77424,"avatar_url":"https://avatars1.githubusercontent.com/u/77424?v=3","gravatar_id":"","url":"https://api.github.com/users/eddyb","html_url":"https://github.com/eddyb","followers_url":"https://api.github.com/users/eddyb/followers","following_url":"https://api.github.com/users/eddyb/following{/other_user}","gists_url":"https://api.github.com/users/eddyb/gists{/gist_id}","starred_url":"https://api.github.com/users/eddyb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eddyb/subscriptions","organizations_url":"https://api.github.com/users/eddyb/orgs","repos_url":"https://api.github.com/users/eddyb/repos","events_url":"https://api.github.com/users/eddyb/events{/privacy}","received_events_url":"https://api.github.com/users/eddyb/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/rust-lang/rust/pulls/41355/commits","review_comments_url":"https://api.github.com/repos/rust-lang/rust/pulls/41355/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/41355/comments","statuses_url":"https://api.github.com/repos/rust-lang/rust/statuses/e3c3b802b40c1c0131de1f3304a30713167acc29","head":{"label":"nikomatsakis:incr-comp-refactor-trans-2","ref":"incr-comp-refactor-trans-2","sha":"e3c3b802b40c1c0131de1f3304a30713167acc29","user":{"login":"nikomatsakis","id":155238,"avatar_url":"https://avatars3.githubusercontent.com/u/155238?v=3","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},"repo":{"id":1672543,"name":"rust","full_name":"nikomatsakis/rust","owner":{"login":"nikomatsakis","id":155238,"avatar_url":"https://avatars3.githubusercontent.com/u/155238?v=3","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},"private":false,"html_url":"https://github.com/nikomatsakis/rust","description":"A work-in-progress programming language; not yet suitable for users","fork":true,"url":"https://api.github.com/repos/nikomatsakis/rust","forks_url":"https://api.github.com/repos/nikomatsakis/rust/forks","keys_url":"https://api.github.com/repos/nikomatsakis/rust/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nikomatsakis/rust/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nikomatsakis/rust/teams","hooks_url":"https://api.github.com/repos/nikomatsakis/rust/hooks","issue_events_url":"https://api.github.com/repos/nikomatsakis/rust/issues/events{/number}","events_url":"https://api.github.com/repos/nikomatsakis/rust/events","assignees_url":"https://api.github.com/repos/nikomatsakis/rust/assignees{/user}","branches_url":"https://api.github.com/repos/nikomatsakis/rust/branches{/branch}","tags_url":"https://api.github.com/repos/nikomatsakis/rust/tags","blobs_url":"https://api.github.com/repos/nikomatsakis/rust/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nikomatsakis/rust/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nikomatsakis/rust/git/refs{/sha}","trees_url":"https://api.github.com/repos/nikomatsakis/rust/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nikomatsakis/rust/statuses/{sha}","languages_url":"https://api.github.com/repos/nikomatsakis/rust/languages","stargazers_url":"https://api.github.com/repos/nikomatsakis/rust/stargazers","contributors_url":"https://api.github.com/repos/nikomatsakis/rust/contributors","subscribers_url":"https://api.github.com/repos/nikomatsakis/rust/subscribers","subscription_url":"https://api.github.com/repos/nikomatsakis/rust/subscription","commits_url":"https://api.github.com/repos/nikomatsakis/rust/commits{/sha}","git_commits_url":"https://api.github.com/repos/nikomatsakis/rust/git/commits{/sha}","comments_url":"https://api.github.com/repos/nikomatsakis/rust/comments{/number}","issue_comment_url":"https://api.github.com/repos/nikomatsakis/rust/issues/comments{/number}","contents_url":"https://api.github.com/repos/nikomatsakis/rust/contents/{+path}","compare_url":"https://api.github.com/repos/nikomatsakis/rust/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nikomatsakis/rust/merges","archive_url":"https://api.github.com/repos/nikomatsakis/rust/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nikomatsakis/rust/downloads","issues_url":"https://api.github.com/repos/nikomatsakis/rust/issues{/number}","pulls_url":"https://api.github.com/repos/nikomatsakis/rust/pulls{/number}","milestones_url":"https://api.github.com/repos/nikomatsakis/rust/milestones{/number}","notifications_url":"https://api.github.com/repos/nikomatsakis/rust/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nikomatsakis/rust/labels{/name}","releases_url":"https://api.github.com/repos/nikomatsakis/rust/releases{/id}","deployments_url":"https://api.github.com/repos/nikomatsakis/rust/deployments","created_at":"2011-04-27T20:20:29Z","updated_at":"2016-09-25T02:52:19Z","pushed_at":"2017-04-18T01:21:23Z","git_url":"git://github.com/nikomatsakis/rust.git","ssh_url":"git@github.com:nikomatsakis/rust.git","clone_url":"https://github.com/nikomatsakis/rust.git","svn_url":"https://github.com/nikomatsakis/rust","homepage":"","size":317485,"stargazers_count":4,"watchers_count":4,"language":"Rust","has_issues":false,"has_projects":true,"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":4,"default_branch":"master"}},"base":{"label":"rust-lang:master","ref":"master","sha":"235fe8313fd0ffec665f1400da781ab2cb1e13f9","user":{"login":"rust-lang","id":5430905,"avatar_url":"https://avatars2.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://avatars2.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":"2017-04-18T05:03:19Z","pushed_at":"2017-04-18T04:15:17Z","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":"https://www.rust-lang.org","size":307353,"stargazers_count":21353,"watchers_count":21353,"language":"Rust","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":4007,"mirror_url":null,"open_issues_count":3109,"forks":4007,"open_issues":3109,"watchers":21353,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/41355"},"html":{"href":"https://github.com/rust-lang/rust/pull/41355"},"issue":{"href":"https://api.github.com/repos/rust-lang/rust/issues/41355"},"comments":{"href":"https://api.github.com/repos/rust-lang/rust/issues/41355/comments"},"review_comments":{"href":"https://api.github.com/repos/rust-lang/rust/pulls/41355/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/41355/commits"},"statuses":{"href":"https://api.github.com/repos/rust-lang/rust/statuses/e3c3b802b40c1c0131de1f3304a30713167acc29"}}}}
{"actor":{"display_login":"eddyb"}}