{"action":"opened","issue":{"url":"https://api.github.com/repos/binaryage/dirac/issues/39","repository_url":"https://api.github.com/repos/binaryage/dirac","labels_url":"https://api.github.com/repos/binaryage/dirac/issues/39/labels{/name}","comments_url":"https://api.github.com/repos/binaryage/dirac/issues/39/comments","events_url":"https://api.github.com/repos/binaryage/dirac/issues/39/events","html_url":"https://github.com/binaryage/dirac/issues/39","id":178271266,"number":39,"title":"Macros inferring in new cljs (CLJS-1507)","user":{"login":"darwin","id":5453,"avatar_url":"https://avatars.githubusercontent.com/u/5453?v=3","gravatar_id":"","url":"https://api.github.com/users/darwin","html_url":"https://github.com/darwin","followers_url":"https://api.github.com/users/darwin/followers","following_url":"https://api.github.com/users/darwin/following{/other_user}","gists_url":"https://api.github.com/users/darwin/gists{/gist_id}","starred_url":"https://api.github.com/users/darwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darwin/subscriptions","organizations_url":"https://api.github.com/users/darwin/orgs","repos_url":"https://api.github.com/users/darwin/repos","events_url":"https://api.github.com/users/darwin/events{/privacy}","received_events_url":"https://api.github.com/users/darwin/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-21T07:46:51Z","updated_at":"2016-09-21T07:46:51Z","closed_at":null,"body":"Currently we use [cljs.analyzer/analyze][1] to parse ns forms. We trust it to tell us which symbols/namespace references are macros. But new macros inference [CLJS-1507][2] can make this unreliable when someone relies on inferring.\r\n\r\nI think a way how to work around this is to treat everything as a function and check for runtime presence. If it is not present at runtime, we treat it as a macro.\r\n\r\nOther idea is just to leave it as is and our code completion hints will report wrong types.\r\n\r\n[1]: https://github.com/binaryage/dirac/blob/f7e140336dd76c125aa91611e4e313ced123a1d1/src/implant/dirac/implant/analyzer.cljs#L9\r\n[2]: http://dev.clojure.org/jira/browse/CLJS-1507"}}
{"actor":{"display_login":"darwin"}}