{"action":"created","issue":{"url":"https://api.github.com/repos/angular/clutz/issues/202","repository_url":"https://api.github.com/repos/angular/clutz","labels_url":"https://api.github.com/repos/angular/clutz/issues/202/labels{/name}","comments_url":"https://api.github.com/repos/angular/clutz/issues/202/comments","events_url":"https://api.github.com/repos/angular/clutz/issues/202/events","html_url":"https://github.com/angular/clutz/issues/202","id":124871123,"number":202,"title":"inferred object types should emit type literals ","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},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-01-05T00:44:57Z","updated_at":"2016-09-22T20:42:27Z","closed_at":null,"body":"The following closure code:\r\n\r\n```javascript\r\n/**\r\n * @const\r\n */\r\nvar constObj = {};\r\n\r\n/**\r\n * @type {number}\r\n */\r\nvar constObj.num;\r\n```\r\n\r\nrelies on type inference to deduce the type of `constObj` to be `{num : number}` (or at least that's how it appears, because `constObj.bar` fails to typecheck.)\r\n\r\nCurrently we emit `constObj : Object` which is not correct. Closure has the right information to output correct type literal type `{num : number}`."},"comment":{"url":"https://api.github.com/repos/angular/clutz/issues/comments/249021967","html_url":"https://github.com/angular/clutz/issues/202#issuecomment-249021967","issue_url":"https://api.github.com/repos/angular/clutz/issues/202","id":249021967,"user":{"login":"dpurp","id":10216,"avatar_url":"https://avatars.githubusercontent.com/u/10216?v=3","gravatar_id":"","url":"https://api.github.com/users/dpurp","html_url":"https://github.com/dpurp","followers_url":"https://api.github.com/users/dpurp/followers","following_url":"https://api.github.com/users/dpurp/following{/other_user}","gists_url":"https://api.github.com/users/dpurp/gists{/gist_id}","starred_url":"https://api.github.com/users/dpurp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpurp/subscriptions","organizations_url":"https://api.github.com/users/dpurp/orgs","repos_url":"https://api.github.com/users/dpurp/repos","events_url":"https://api.github.com/users/dpurp/events{/privacy}","received_events_url":"https://api.github.com/users/dpurp/received_events","type":"User","site_admin":false},"created_at":"2016-09-22T20:42:27Z","updated_at":"2016-09-22T20:42:27Z","body":"If I remember correctly, Closure treats constObj as a namespace rather than an 'object'. \r\n\r\nThat is, in Closure, this:\r\n```\r\n/**\r\n * @const\r\n */\r\nvar constObj = {};\r\n```\r\n\r\nIs different from this:\r\n```\r\n/**\r\n * @const {!Object}\r\n */\r\nvar constObj = {};\r\n```"}}
{"actor":{"display_login":"dpurp"}}