{"action":"created","issue":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/12021","labels_url":"https://api.github.com/repos/JuliaLang/julia/issues/12021/labels{/name}","comments_url":"https://api.github.com/repos/JuliaLang/julia/issues/12021/comments","events_url":"https://api.github.com/repos/JuliaLang/julia/issues/12021/events","html_url":"https://github.com/JuliaLang/julia/issues/12021","id":93175265,"number":12021,"title":"Disallow @macroname x, y?","user":{"login":"simonster","id":470884,"avatar_url":"https://avatars.githubusercontent.com/u/470884?v=3","gravatar_id":"","url":"https://api.github.com/users/simonster","html_url":"https://github.com/simonster","followers_url":"https://api.github.com/users/simonster/followers","following_url":"https://api.github.com/users/simonster/following{/other_user}","gists_url":"https://api.github.com/users/simonster/gists{/gist_id}","starred_url":"https://api.github.com/users/simonster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simonster/subscriptions","organizations_url":"https://api.github.com/users/simonster/orgs","repos_url":"https://api.github.com/users/simonster/repos","events_url":"https://api.github.com/users/simonster/events{/privacy}","received_events_url":"https://api.github.com/users/simonster/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/JuliaLang/julia/labels/decision","name":"decision","color":"F08000"},{"url":"https://api.github.com/repos/JuliaLang/julia/labels/speculative","name":"speculative","color":"999999"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-07-06T03:00:10Z","updated_at":"2015-07-06T04:19:08Z","closed_at":null,"body":"It's not immediately obvious to many people that `@macroname x, y` will be parsed as `@macroname((x, y))` and not `@macroname(x), y` or `@macroname(x, y)`. This has been a source of confusion for use of `@compat` (JuliaLang/Compat.jl#71, JuliaLang/Compat.jl#111, probably other places as well), but I'm not sure I've ever seen it used intentionally. In the interest of usability, we might just want to throw an error.\r\n\r\ncc @sbromberger"},"comment":{"url":"https://api.github.com/repos/JuliaLang/julia/issues/comments/118709015","html_url":"https://github.com/JuliaLang/julia/issues/12021#issuecomment-118709015","issue_url":"https://api.github.com/repos/JuliaLang/julia/issues/12021","id":118709015,"user":{"login":"simonster","id":470884,"avatar_url":"https://avatars.githubusercontent.com/u/470884?v=3","gravatar_id":"","url":"https://api.github.com/users/simonster","html_url":"https://github.com/simonster","followers_url":"https://api.github.com/users/simonster/followers","following_url":"https://api.github.com/users/simonster/following{/other_user}","gists_url":"https://api.github.com/users/simonster/gists{/gist_id}","starred_url":"https://api.github.com/users/simonster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simonster/subscriptions","organizations_url":"https://api.github.com/users/simonster/orgs","repos_url":"https://api.github.com/users/simonster/repos","events_url":"https://api.github.com/users/simonster/events{/privacy}","received_events_url":"https://api.github.com/users/simonster/received_events","type":"User","site_admin":false},"created_at":"2015-07-06T04:19:08Z","updated_at":"2015-07-06T04:19:08Z","body":"@IainNZ That's not quite the same thing. `@macroname x y` parses as `@macroname(x, y)`. That seems relatively unambiguous, since `x y`, `f(x y)`, etc. would not be valid expressions. What bothers me is `@macroname x, y` (with a comma between `x` and `y`), which passes the macro `:((x, y))` as its only argument.\r\n\r\nBut since you mention it, I wonder what the rationale is/was for allowing macro calls without parens. There is certainly a lot of code that calls macros without them, but I tend to agree that things are clearer with them."}}