{"action":"created","comment":{"url":"https://api.github.com/repos/mozilla/dxr/pulls/comments/35352969","id":35352969,"diff_hunk":"@@ -173,93 +255,100 @@ def variable_menu(tree, datum, tree_config):\n     if 'type' in datum:\n         typ = datum['type']\n     else:\n-        print \"no type for variable\", datum['qualname']\n+        warn(\"no type for variable %s\" % (datum['qualname'],))\n     return Ref(menu, hover=truncate_value(\"\", typ))\n \n \n def variable_ref_menu(tree, datum, tree_config):\n     if datum['refid'] and datum['refid'] in tree.data.variables:\n+        makers = []\n         var = tree.data.variables[datum['refid']]\n-        menu = variable_menu_generic(tree, var, tree_config)\n-        add_jump_definition(tree, tree_config, menu, var)\n+        makers.append(JumpToDefinitionMenuMaker.from_decl(tree_config, var))\n+        makers.extend(variable_menu_generic(tree, var, tree_config))\n         typ = None\n         if 'type' in var:\n             typ = var['type']\n         else:\n-            print \"no type for variable ref\", var['qualname']\n-        return Ref(menu, hover=truncate_value(typ, var['value']))\n+            warn(\"no type for variable ref %s\" % (var['qualname'],))\n+        return Ref(makers, hover=truncate_value(typ, var['value']))\n \n     # TODO what is the culprit here?\n     #print \"variable ref missing def\"\n-    return None\n+\n+\n+class TypeMenuMaker(SingleDatumMenuMaker, _RustPluginAttr):\n+    def menu_items(self):\n+        kind, qualname = self.data\n+        if kind == 'trait':\n+            yield {'html': \"Find sub-traits\",\n+                   'title': \"Find sub-traits of this trait\",\n+                   'href': search_url(tree_config, \"+derived:%s\" % quote(qualname)),","path":"dxr/plugins/rust/menu.py","position":340,"original_position":340,"commit_id":"2834a6ceca850ec4e1176bae83fcc26fa334e61c","original_commit_id":"2834a6ceca850ec4e1176bae83fcc26fa334e61c","user":{"login":"pelmers","id":2406051,"avatar_url":"https://avatars.githubusercontent.com/u/2406051?v=3","gravatar_id":"","url":"https://api.github.com/users/pelmers","html_url":"https://github.com/pelmers","followers_url":"https://api.github.com/users/pelmers/followers","following_url":"https://api.github.com/users/pelmers/following{/other_user}","gists_url":"https://api.github.com/users/pelmers/gists{/gist_id}","starred_url":"https://api.github.com/users/pelmers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pelmers/subscriptions","organizations_url":"https://api.github.com/users/pelmers/orgs","repos_url":"https://api.github.com/users/pelmers/repos","events_url":"https://api.github.com/users/pelmers/events{/privacy}","received_events_url":"https://api.github.com/users/pelmers/received_events","type":"User","site_admin":false},"body":"I think we want self.tree, rather than tree_config.","created_at":"2015-07-23T18:13:15Z","updated_at":"2015-07-23T18:13:15Z","html_url":"https://github.com/mozilla/dxr/pull/453#discussion_r35352969","pull_request_url":"https://api.github.com/repos/mozilla/dxr/pulls/453","_links":{"self":{"href":"https://api.github.com/repos/mozilla/dxr/pulls/comments/35352969"},"html":{"href":"https://github.com/mozilla/dxr/pull/453#discussion_r35352969"},"pull_request":{"href":"https://api.github.com/repos/mozilla/dxr/pulls/453"}}},"pull_request":{"url":"https://api.github.com/repos/mozilla/dxr/pulls/453","id":39331199,"html_url":"https://github.com/mozilla/dxr/pull/453","diff_url":"https://github.com/mozilla/dxr/pull/453.diff","patch_url":"https://github.com/mozilla/dxr/pull/453.patch","issue_url":"https://api.github.com/repos/mozilla/dxr/issues/453","number":453,"state":"open","locked":false,"title":"Optimize indexing by deferring menu generation to request time.","user":{"login":"erikrose","id":295816,"avatar_url":"https://avatars.githubusercontent.com/u/295816?v=3","gravatar_id":"","url":"https://api.github.com/users/erikrose","html_url":"https://github.com/erikrose","followers_url":"https://api.github.com/users/erikrose/followers","following_url":"https://api.github.com/users/erikrose/following{/other_user}","gists_url":"https://api.github.com/users/erikrose/gists{/gist_id}","starred_url":"https://api.github.com/users/erikrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikrose/subscriptions","organizations_url":"https://api.github.com/users/erikrose/orgs","repos_url":"https://api.github.com/users/erikrose/repos","events_url":"https://api.github.com/users/erikrose/events{/privacy}","received_events_url":"https://api.github.com/users/erikrose/received_events","type":"User","site_admin":false},"body":"Based on profiles, this should make clang indexing 25-50% faster.\r\n\r\nReviewing one commit at a time will probably be easiest for this.","created_at":"2015-07-07T03:05:13Z","updated_at":"2015-07-23T18:13:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2b0173a9923f0ad6fef78ddb682554da72cd0358","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mozilla/dxr/pulls/453/commits","review_comments_url":"https://api.github.com/repos/mozilla/dxr/pulls/453/comments","review_comment_url":"https://api.github.com/repos/mozilla/dxr/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla/dxr/issues/453/comments","statuses_url":"https://api.github.com/repos/mozilla/dxr/statuses/2834a6ceca850ec4e1176bae83fcc26fa334e61c","head":{"label":"erikrose:optimize-refs","ref":"optimize-refs","sha":"2834a6ceca850ec4e1176bae83fcc26fa334e61c","user":{"login":"erikrose","id":295816,"avatar_url":"https://avatars.githubusercontent.com/u/295816?v=3","gravatar_id":"","url":"https://api.github.com/users/erikrose","html_url":"https://github.com/erikrose","followers_url":"https://api.github.com/users/erikrose/followers","following_url":"https://api.github.com/users/erikrose/following{/other_user}","gists_url":"https://api.github.com/users/erikrose/gists{/gist_id}","starred_url":"https://api.github.com/users/erikrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikrose/subscriptions","organizations_url":"https://api.github.com/users/erikrose/orgs","repos_url":"https://api.github.com/users/erikrose/repos","events_url":"https://api.github.com/users/erikrose/events{/privacy}","received_events_url":"https://api.github.com/users/erikrose/received_events","type":"User","site_admin":false},"repo":{"id":7027596,"name":"dxr","full_name":"erikrose/dxr","owner":{"login":"erikrose","id":295816,"avatar_url":"https://avatars.githubusercontent.com/u/295816?v=3","gravatar_id":"","url":"https://api.github.com/users/erikrose","html_url":"https://github.com/erikrose","followers_url":"https://api.github.com/users/erikrose/followers","following_url":"https://api.github.com/users/erikrose/following{/other_user}","gists_url":"https://api.github.com/users/erikrose/gists{/gist_id}","starred_url":"https://api.github.com/users/erikrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikrose/subscriptions","organizations_url":"https://api.github.com/users/erikrose/orgs","repos_url":"https://api.github.com/users/erikrose/repos","events_url":"https://api.github.com/users/erikrose/events{/privacy}","received_events_url":"https://api.github.com/users/erikrose/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/erikrose/dxr","description":"An intelligent source code browser","fork":true,"url":"https://api.github.com/repos/erikrose/dxr","forks_url":"https://api.github.com/repos/erikrose/dxr/forks","keys_url":"https://api.github.com/repos/erikrose/dxr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/erikrose/dxr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/erikrose/dxr/teams","hooks_url":"https://api.github.com/repos/erikrose/dxr/hooks","issue_events_url":"https://api.github.com/repos/erikrose/dxr/issues/events{/number}","events_url":"https://api.github.com/repos/erikrose/dxr/events","assignees_url":"https://api.github.com/repos/erikrose/dxr/assignees{/user}","branches_url":"https://api.github.com/repos/erikrose/dxr/branches{/branch}","tags_url":"https://api.github.com/repos/erikrose/dxr/tags","blobs_url":"https://api.github.com/repos/erikrose/dxr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/erikrose/dxr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/erikrose/dxr/git/refs{/sha}","trees_url":"https://api.github.com/repos/erikrose/dxr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/erikrose/dxr/statuses/{sha}","languages_url":"https://api.github.com/repos/erikrose/dxr/languages","stargazers_url":"https://api.github.com/repos/erikrose/dxr/stargazers","contributors_url":"https://api.github.com/repos/erikrose/dxr/contributors","subscribers_url":"https://api.github.com/repos/erikrose/dxr/subscribers","subscription_url":"https://api.github.com/repos/erikrose/dxr/subscription","commits_url":"https://api.github.com/repos/erikrose/dxr/commits{/sha}","git_commits_url":"https://api.github.com/repos/erikrose/dxr/git/commits{/sha}","comments_url":"https://api.github.com/repos/erikrose/dxr/comments{/number}","issue_comment_url":"https://api.github.com/repos/erikrose/dxr/issues/comments{/number}","contents_url":"https://api.github.com/repos/erikrose/dxr/contents/{+path}","compare_url":"https://api.github.com/repos/erikrose/dxr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/erikrose/dxr/merges","archive_url":"https://api.github.com/repos/erikrose/dxr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/erikrose/dxr/downloads","issues_url":"https://api.github.com/repos/erikrose/dxr/issues{/number}","pulls_url":"https://api.github.com/repos/erikrose/dxr/pulls{/number}","milestones_url":"https://api.github.com/repos/erikrose/dxr/milestones{/number}","notifications_url":"https://api.github.com/repos/erikrose/dxr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/erikrose/dxr/labels{/name}","releases_url":"https://api.github.com/repos/erikrose/dxr/releases{/id}","created_at":"2012-12-06T01:04:31Z","updated_at":"2015-02-21T19:10:21Z","pushed_at":"2015-07-22T16:54:06Z","git_url":"git://github.com/erikrose/dxr.git","ssh_url":"git@github.com:erikrose/dxr.git","clone_url":"https://github.com/erikrose/dxr.git","svn_url":"https://github.com/erikrose/dxr","homepage":"","size":11114,"stargazers_count":1,"watchers_count":1,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"mozilla:es","ref":"es","sha":"c39118269de1d73ec37f6872c6c0388069989899","user":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"repo":{"id":1795049,"name":"dxr","full_name":"mozilla/dxr","owner":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla/dxr","description":"An intelligent source code browser","fork":false,"url":"https://api.github.com/repos/mozilla/dxr","forks_url":"https://api.github.com/repos/mozilla/dxr/forks","keys_url":"https://api.github.com/repos/mozilla/dxr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla/dxr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla/dxr/teams","hooks_url":"https://api.github.com/repos/mozilla/dxr/hooks","issue_events_url":"https://api.github.com/repos/mozilla/dxr/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla/dxr/events","assignees_url":"https://api.github.com/repos/mozilla/dxr/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla/dxr/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla/dxr/tags","blobs_url":"https://api.github.com/repos/mozilla/dxr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla/dxr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla/dxr/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla/dxr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla/dxr/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla/dxr/languages","stargazers_url":"https://api.github.com/repos/mozilla/dxr/stargazers","contributors_url":"https://api.github.com/repos/mozilla/dxr/contributors","subscribers_url":"https://api.github.com/repos/mozilla/dxr/subscribers","subscription_url":"https://api.github.com/repos/mozilla/dxr/subscription","commits_url":"https://api.github.com/repos/mozilla/dxr/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla/dxr/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla/dxr/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla/dxr/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla/dxr/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla/dxr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla/dxr/merges","archive_url":"https://api.github.com/repos/mozilla/dxr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla/dxr/downloads","issues_url":"https://api.github.com/repos/mozilla/dxr/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla/dxr/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla/dxr/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla/dxr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla/dxr/labels{/name}","releases_url":"https://api.github.com/repos/mozilla/dxr/releases{/id}","created_at":"2011-05-24T18:52:38Z","updated_at":"2015-07-21T04:11:02Z","pushed_at":"2015-07-23T15:59:27Z","git_url":"git://github.com/mozilla/dxr.git","ssh_url":"git@github.com:mozilla/dxr.git","clone_url":"https://github.com/mozilla/dxr.git","svn_url":"https://github.com/mozilla/dxr","homepage":"https://dxr.readthedocs.org/","size":15175,"stargazers_count":319,"watchers_count":319,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":132,"mirror_url":null,"open_issues_count":32,"forks":132,"open_issues":32,"watchers":319,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla/dxr/pulls/453"},"html":{"href":"https://github.com/mozilla/dxr/pull/453"},"issue":{"href":"https://api.github.com/repos/mozilla/dxr/issues/453"},"comments":{"href":"https://api.github.com/repos/mozilla/dxr/issues/453/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla/dxr/pulls/453/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla/dxr/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla/dxr/pulls/453/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla/dxr/statuses/2834a6ceca850ec4e1176bae83fcc26fa334e61c"}}}}