payload: {"action":"closed","issue":{"url":"https://api.github.com/repos/rrrene/credo/issues/602","repository_url":"https://api.github.com/repos/rrrene/credo","labels_url":"https://api.github.com/repos/rrrene/credo/issues/602/labels{/name}","comments_url":"https://api.github.com/repos/rrrene/credo/issues/602/comments","events_url":"https://api.github.com/repos/rrrene/credo/issues/602/events","html_url":"https://github.com/rrrene/credo/issues/602","id":373135738,"node_id":"MDU6SXNzdWUzNzMxMzU3Mzg=","number":602,"title":"ABC Size incorrect with function calls","user":{"login":"roehst","id":21047691,"node_id":"MDQ6VXNlcjIxMDQ3Njkx","avatar_url":"https://avatars0.githubusercontent.com/u/21047691?v=4","gravatar_id":"","url":"https://api.github.com/users/roehst","html_url":"https://github.com/roehst","followers_url":"https://api.github.com/users/roehst/followers","following_url":"https://api.github.com/users/roehst/following{/other_user}","gists_url":"https://api.github.com/users/roehst/gists{/gist_id}","starred_url":"https://api.github.com/users/roehst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roehst/subscriptions","organizations_url":"https://api.github.com/users/roehst/orgs","repos_url":"https://api.github.com/users/roehst/repos","events_url":"https://api.github.com/users/roehst/events{/privacy}","received_events_url":"https://api.github.com/users/roehst/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-10-23T18:20:07Z","updated_at":"2019-03-23T16:08:10Z","closed_at":"2019-03-23T16:08:10Z","author_association":"CONTRIBUTOR","body":"### Environment\r\n\r\n* Credo version (`mix credo -v`): 0.10.2\r\n* Erlang/Elixir version (`elixir -v`): elixir 171 compiled with otp 19\r\n* Operating system: Ubuntu\r\n\r\n### What were you trying to do?\r\n\r\nI was working on the #561 issue and while working on it i noticed that there were function calls that the ABC check was missing. Digging deeper I noticed that function calls with parameter lists go untouched.\r\n\r\nThe bug can be reproduced with this simple Gist: https://gist.github.com/roehst/24a676385415d8dbb72ff8ab2774cd22.\r\n\r\nThe following code has a function call:\r\n\r\n    def foo(a, b) do\r\n        other_fun a, b\r\n    end\r\n\r\nBut its ABC size is measured as 0.0 while it should be 1.0.\r\n\r\nIn comparison, try the following code:\r\n\r\n    def foo(a, b) do\r\n        other_fun\r\n    end\r\n\r\nAnd its ABC size is measured correctly as 1.0.\r\n\r\nTo my best understanding of the problem, there isn't a clause that matches on {atom, _meta, list} to handle this case of a function with arguments. I have a fix available. I would just have to normalize it to match your code style. There are also a few other minor improvements on handling bound names as a stack that I could submit into a new PR. \r\n\r\nIf you are interested in something a bit deeper I worked a bit on annotating the Elixir AST's meta field with syntatic information while debugging the ABC check, but it could be useful in other places as well.\r\n"}}
other: {"actor":{"display_login":"rrrene"}}