{"action":"created","comment":{"url":"https://api.github.com/repos/angular/sickle/pulls/comments/55898248","id":55898248,"diff_hunk":"@@ -290,6 +280,40 @@ class Annotator {\n     this.indent--;\n   }\n \n+  private expandSymbolsFromExportStar(exportDecl: ts.ExportDeclaration): string[] {\n+    let typeChecker = this.program.getTypeChecker();\n+\n+    // Gather the names of local exports, to avoid reexporting any\n+    // names that are already locally exported.\n+    let locals =\n+        typeChecker.getSymbolsInScope(this.file, ts.SymbolFlags.Export | ts.SymbolFlags.Alias);\n+    let localSet: {[name: string]: boolean} = {};\n+    for (let local of locals) {\n+      localSet[local.name] = true;\n+    }","path":"src/sickle.ts","position":48,"original_position":48,"commit_id":"cc3e7dd320b2865e1659c777d586bd65249696ab","original_commit_id":"cc3e7dd320b2865e1659c777d586bd65249696ab","user":{"login":"rkirov","id":95713,"avatar_url":"https://avatars.githubusercontent.com/u/95713?v=3","gravatar_id":"","url":"https://api.github.com/users/rkirov","html_url":"https://github.com/rkirov","followers_url":"https://api.github.com/users/rkirov/followers","following_url":"https://api.github.com/users/rkirov/following{/other_user}","gists_url":"https://api.github.com/users/rkirov/gists{/gist_id}","starred_url":"https://api.github.com/users/rkirov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rkirov/subscriptions","organizations_url":"https://api.github.com/users/rkirov/orgs","repos_url":"https://api.github.com/users/rkirov/repos","events_url":"https://api.github.com/users/rkirov/events{/privacy}","received_events_url":"https://api.github.com/users/rkirov/received_events","type":"User","site_admin":false},"body":"This guy doesn't depend on exportDecl, I wonder if there is a better way to put it, instead of rebuilding it per decl.","created_at":"2016-03-11T22:25:43Z","updated_at":"2016-03-11T22:25:43Z","html_url":"https://github.com/angular/sickle/pull/92#discussion_r55898248","pull_request_url":"https://api.github.com/repos/angular/sickle/pulls/92","_links":{"self":{"href":"https://api.github.com/repos/angular/sickle/pulls/comments/55898248"},"html":{"href":"https://github.com/angular/sickle/pull/92#discussion_r55898248"},"pull_request":{"href":"https://api.github.com/repos/angular/sickle/pulls/92"}}},"pull_request":{"url":"https://api.github.com/repos/angular/sickle/pulls/92","id":62591522,"html_url":"https://github.com/angular/sickle/pull/92","diff_url":"https://github.com/angular/sickle/pull/92.diff","patch_url":"https://github.com/angular/sickle/pull/92.patch","issue_url":"https://api.github.com/repos/angular/sickle/issues/92","number":92,"state":"open","locked":false,"title":"when re-exporting *, avoid other named exports","user":{"login":"martine","id":3847,"avatar_url":"https://avatars.githubusercontent.com/u/3847?v=3","gravatar_id":"","url":"https://api.github.com/users/martine","html_url":"https://github.com/martine","followers_url":"https://api.github.com/users/martine/followers","following_url":"https://api.github.com/users/martine/following{/other_user}","gists_url":"https://api.github.com/users/martine/gists{/gist_id}","starred_url":"https://api.github.com/users/martine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martine/subscriptions","organizations_url":"https://api.github.com/users/martine/orgs","repos_url":"https://api.github.com/users/martine/repos","events_url":"https://api.github.com/users/martine/events{/privacy}","received_events_url":"https://api.github.com/users/martine/received_events","type":"User","site_admin":false},"body":"When exporting each var by name from an \"export *\",\r\nwe already avoid locals like \"export var foo\".\r\nBut we were missing re-exports like \"export {foo} from ...\"\r\n\r\nMore fixing on #47.","created_at":"2016-03-11T19:36:07Z","updated_at":"2016-03-11T22:25:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dda74c556d29d7fed076fca78e0106f40878c5d4","assignee":{"login":"rkirov","id":95713,"avatar_url":"https://avatars.githubusercontent.com/u/95713?v=3","gravatar_id":"","url":"https://api.github.com/users/rkirov","html_url":"https://github.com/rkirov","followers_url":"https://api.github.com/users/rkirov/followers","following_url":"https://api.github.com/users/rkirov/following{/other_user}","gists_url":"https://api.github.com/users/rkirov/gists{/gist_id}","starred_url":"https://api.github.com/users/rkirov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rkirov/subscriptions","organizations_url":"https://api.github.com/users/rkirov/orgs","repos_url":"https://api.github.com/users/rkirov/repos","events_url":"https://api.github.com/users/rkirov/events{/privacy}","received_events_url":"https://api.github.com/users/rkirov/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/angular/sickle/pulls/92/commits","review_comments_url":"https://api.github.com/repos/angular/sickle/pulls/92/comments","review_comment_url":"https://api.github.com/repos/angular/sickle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/angular/sickle/issues/92/comments","statuses_url":"https://api.github.com/repos/angular/sickle/statuses/cc3e7dd320b2865e1659c777d586bd65249696ab","head":{"label":"martine:more-exports","ref":"more-exports","sha":"cc3e7dd320b2865e1659c777d586bd65249696ab","user":{"login":"martine","id":3847,"avatar_url":"https://avatars.githubusercontent.com/u/3847?v=3","gravatar_id":"","url":"https://api.github.com/users/martine","html_url":"https://github.com/martine","followers_url":"https://api.github.com/users/martine/followers","following_url":"https://api.github.com/users/martine/following{/other_user}","gists_url":"https://api.github.com/users/martine/gists{/gist_id}","starred_url":"https://api.github.com/users/martine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martine/subscriptions","organizations_url":"https://api.github.com/users/martine/orgs","repos_url":"https://api.github.com/users/martine/repos","events_url":"https://api.github.com/users/martine/events{/privacy}","received_events_url":"https://api.github.com/users/martine/received_events","type":"User","site_admin":false},"repo":{"id":49169487,"name":"sickle","full_name":"martine/sickle","owner":{"login":"martine","id":3847,"avatar_url":"https://avatars.githubusercontent.com/u/3847?v=3","gravatar_id":"","url":"https://api.github.com/users/martine","html_url":"https://github.com/martine","followers_url":"https://api.github.com/users/martine/followers","following_url":"https://api.github.com/users/martine/following{/other_user}","gists_url":"https://api.github.com/users/martine/gists{/gist_id}","starred_url":"https://api.github.com/users/martine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martine/subscriptions","organizations_url":"https://api.github.com/users/martine/orgs","repos_url":"https://api.github.com/users/martine/repos","events_url":"https://api.github.com/users/martine/events{/privacy}","received_events_url":"https://api.github.com/users/martine/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/martine/sickle","description":"Tickle - TypeScript to Closure Annotator","fork":true,"url":"https://api.github.com/repos/martine/sickle","forks_url":"https://api.github.com/repos/martine/sickle/forks","keys_url":"https://api.github.com/repos/martine/sickle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/martine/sickle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/martine/sickle/teams","hooks_url":"https://api.github.com/repos/martine/sickle/hooks","issue_events_url":"https://api.github.com/repos/martine/sickle/issues/events{/number}","events_url":"https://api.github.com/repos/martine/sickle/events","assignees_url":"https://api.github.com/repos/martine/sickle/assignees{/user}","branches_url":"https://api.github.com/repos/martine/sickle/branches{/branch}","tags_url":"https://api.github.com/repos/martine/sickle/tags","blobs_url":"https://api.github.com/repos/martine/sickle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/martine/sickle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/martine/sickle/git/refs{/sha}","trees_url":"https://api.github.com/repos/martine/sickle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/martine/sickle/statuses/{sha}","languages_url":"https://api.github.com/repos/martine/sickle/languages","stargazers_url":"https://api.github.com/repos/martine/sickle/stargazers","contributors_url":"https://api.github.com/repos/martine/sickle/contributors","subscribers_url":"https://api.github.com/repos/martine/sickle/subscribers","subscription_url":"https://api.github.com/repos/martine/sickle/subscription","commits_url":"https://api.github.com/repos/martine/sickle/commits{/sha}","git_commits_url":"https://api.github.com/repos/martine/sickle/git/commits{/sha}","comments_url":"https://api.github.com/repos/martine/sickle/comments{/number}","issue_comment_url":"https://api.github.com/repos/martine/sickle/issues/comments{/number}","contents_url":"https://api.github.com/repos/martine/sickle/contents/{+path}","compare_url":"https://api.github.com/repos/martine/sickle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/martine/sickle/merges","archive_url":"https://api.github.com/repos/martine/sickle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/martine/sickle/downloads","issues_url":"https://api.github.com/repos/martine/sickle/issues{/number}","pulls_url":"https://api.github.com/repos/martine/sickle/pulls{/number}","milestones_url":"https://api.github.com/repos/martine/sickle/milestones{/number}","notifications_url":"https://api.github.com/repos/martine/sickle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/martine/sickle/labels{/name}","releases_url":"https://api.github.com/repos/martine/sickle/releases{/id}","deployments_url":"https://api.github.com/repos/martine/sickle/deployments","created_at":"2016-01-07T00:05:12Z","updated_at":"2016-01-12T21:47:15Z","pushed_at":"2016-03-11T22:04:00Z","git_url":"git://github.com/martine/sickle.git","ssh_url":"git@github.com:martine/sickle.git","clone_url":"https://github.com/martine/sickle.git","svn_url":"https://github.com/martine/sickle","homepage":null,"size":111,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","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":"angular:master","ref":"master","sha":"115a7e2808e714228a2918de027cc6ba1db34ecc","user":{"login":"angular","id":139426,"avatar_url":"https://avatars.githubusercontent.com/u/139426?v=3","gravatar_id":"","url":"https://api.github.com/users/angular","html_url":"https://github.com/angular","followers_url":"https://api.github.com/users/angular/followers","following_url":"https://api.github.com/users/angular/following{/other_user}","gists_url":"https://api.github.com/users/angular/gists{/gist_id}","starred_url":"https://api.github.com/users/angular/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/angular/subscriptions","organizations_url":"https://api.github.com/users/angular/orgs","repos_url":"https://api.github.com/users/angular/repos","events_url":"https://api.github.com/users/angular/events{/privacy}","received_events_url":"https://api.github.com/users/angular/received_events","type":"Organization","site_admin":false},"repo":{"id":43722735,"name":"sickle","full_name":"angular/sickle","owner":{"login":"angular","id":139426,"avatar_url":"https://avatars.githubusercontent.com/u/139426?v=3","gravatar_id":"","url":"https://api.github.com/users/angular","html_url":"https://github.com/angular","followers_url":"https://api.github.com/users/angular/followers","following_url":"https://api.github.com/users/angular/following{/other_user}","gists_url":"https://api.github.com/users/angular/gists{/gist_id}","starred_url":"https://api.github.com/users/angular/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/angular/subscriptions","organizations_url":"https://api.github.com/users/angular/orgs","repos_url":"https://api.github.com/users/angular/repos","events_url":"https://api.github.com/users/angular/events{/privacy}","received_events_url":"https://api.github.com/users/angular/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/angular/sickle","description":"Tickle - TypeScript to Closure Annotator","fork":false,"url":"https://api.github.com/repos/angular/sickle","forks_url":"https://api.github.com/repos/angular/sickle/forks","keys_url":"https://api.github.com/repos/angular/sickle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/angular/sickle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/angular/sickle/teams","hooks_url":"https://api.github.com/repos/angular/sickle/hooks","issue_events_url":"https://api.github.com/repos/angular/sickle/issues/events{/number}","events_url":"https://api.github.com/repos/angular/sickle/events","assignees_url":"https://api.github.com/repos/angular/sickle/assignees{/user}","branches_url":"https://api.github.com/repos/angular/sickle/branches{/branch}","tags_url":"https://api.github.com/repos/angular/sickle/tags","blobs_url":"https://api.github.com/repos/angular/sickle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/angular/sickle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/angular/sickle/git/refs{/sha}","trees_url":"https://api.github.com/repos/angular/sickle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/angular/sickle/statuses/{sha}","languages_url":"https://api.github.com/repos/angular/sickle/languages","stargazers_url":"https://api.github.com/repos/angular/sickle/stargazers","contributors_url":"https://api.github.com/repos/angular/sickle/contributors","subscribers_url":"https://api.github.com/repos/angular/sickle/subscribers","subscription_url":"https://api.github.com/repos/angular/sickle/subscription","commits_url":"https://api.github.com/repos/angular/sickle/commits{/sha}","git_commits_url":"https://api.github.com/repos/angular/sickle/git/commits{/sha}","comments_url":"https://api.github.com/repos/angular/sickle/comments{/number}","issue_comment_url":"https://api.github.com/repos/angular/sickle/issues/comments{/number}","contents_url":"https://api.github.com/repos/angular/sickle/contents/{+path}","compare_url":"https://api.github.com/repos/angular/sickle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/angular/sickle/merges","archive_url":"https://api.github.com/repos/angular/sickle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/angular/sickle/downloads","issues_url":"https://api.github.com/repos/angular/sickle/issues{/number}","pulls_url":"https://api.github.com/repos/angular/sickle/pulls{/number}","milestones_url":"https://api.github.com/repos/angular/sickle/milestones{/number}","notifications_url":"https://api.github.com/repos/angular/sickle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/angular/sickle/labels{/name}","releases_url":"https://api.github.com/repos/angular/sickle/releases{/id}","deployments_url":"https://api.github.com/repos/angular/sickle/deployments","created_at":"2015-10-06T00:55:40Z","updated_at":"2016-02-25T00:58:53Z","pushed_at":"2016-03-11T22:04:01Z","git_url":"git://github.com/angular/sickle.git","ssh_url":"git@github.com:angular/sickle.git","clone_url":"https://github.com/angular/sickle.git","svn_url":"https://github.com/angular/sickle","homepage":null,"size":117,"stargazers_count":12,"watchers_count":12,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":19,"forks":2,"open_issues":19,"watchers":12,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/angular/sickle/pulls/92"},"html":{"href":"https://github.com/angular/sickle/pull/92"},"issue":{"href":"https://api.github.com/repos/angular/sickle/issues/92"},"comments":{"href":"https://api.github.com/repos/angular/sickle/issues/92/comments"},"review_comments":{"href":"https://api.github.com/repos/angular/sickle/pulls/92/comments"},"review_comment":{"href":"https://api.github.com/repos/angular/sickle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/angular/sickle/pulls/92/commits"},"statuses":{"href":"https://api.github.com/repos/angular/sickle/statuses/cc3e7dd320b2865e1659c777d586bd65249696ab"}}}}