{"action":"created","issue":{"url":"https://api.github.com/repos/cursiveclojure/cursive/issues/865","labels_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/865/labels{/name}","comments_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/865/comments","events_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/865/events","html_url":"https://github.com/cursiveclojure/cursive/issues/865","id":72785922,"number":865,"title":"Wrong hint \"<function name> cannot be resolved\" for inner functions","user":{"login":"vasily-kirichenko","id":873919,"avatar_url":"https://avatars.githubusercontent.com/u/873919?v=3","gravatar_id":"","url":"https://api.github.com/users/vasily-kirichenko","html_url":"https://github.com/vasily-kirichenko","followers_url":"https://api.github.com/users/vasily-kirichenko/followers","following_url":"https://api.github.com/users/vasily-kirichenko/following{/other_user}","gists_url":"https://api.github.com/users/vasily-kirichenko/gists{/gist_id}","starred_url":"https://api.github.com/users/vasily-kirichenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vasily-kirichenko/subscriptions","organizations_url":"https://api.github.com/users/vasily-kirichenko/orgs","repos_url":"https://api.github.com/users/vasily-kirichenko/repos","events_url":"https://api.github.com/users/vasily-kirichenko/events{/privacy}","received_events_url":"https://api.github.com/users/vasily-kirichenko/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-05-03T10:28:55Z","updated_at":"2015-05-03T20:50:55Z","closed_at":"2015-05-03T20:50:55Z","body":"![image](https://cloud.githubusercontent.com/assets/873919/7444676/3fbf4712-f198-11e4-8797-5288f8f70baf.png)\r\n\r\nThe code\r\n\r\n```clojure\r\n(defn ffib [n]\r\n  (defn go [x n2 n1]\r\n    (if (= x 0)\r\n      n2\r\n      (recur (- x 1) n1 (+ n2 n1))))\r\n  (if (< n 2)\r\n    n\r\n    (go n 1 1)))\r\n```"},"comment":{"url":"https://api.github.com/repos/cursiveclojure/cursive/issues/comments/98543069","html_url":"https://github.com/cursiveclojure/cursive/issues/865#issuecomment-98543069","issue_url":"https://api.github.com/repos/cursiveclojure/cursive/issues/865","id":98543069,"user":{"login":"cursiveclojure","id":5589171,"avatar_url":"https://avatars.githubusercontent.com/u/5589171?v=3","gravatar_id":"","url":"https://api.github.com/users/cursiveclojure","html_url":"https://github.com/cursiveclojure","followers_url":"https://api.github.com/users/cursiveclojure/followers","following_url":"https://api.github.com/users/cursiveclojure/following{/other_user}","gists_url":"https://api.github.com/users/cursiveclojure/gists{/gist_id}","starred_url":"https://api.github.com/users/cursiveclojure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cursiveclojure/subscriptions","organizations_url":"https://api.github.com/users/cursiveclojure/orgs","repos_url":"https://api.github.com/users/cursiveclojure/repos","events_url":"https://api.github.com/users/cursiveclojure/events{/privacy}","received_events_url":"https://api.github.com/users/cursiveclojure/received_events","type":"User","site_admin":false},"created_at":"2015-05-03T20:50:55Z","updated_at":"2015-05-03T20:50:55Z","body":"Right - while this is technically legal, it's strongly discouraged. Unlike Scheme, `defn` shouldn't be used like this, since it defines a top-level var every time the function is invoked - that's almost certainly not what you want. A better solution would be to either use `letfn`, or `(let [go (fn [x n2 n1] ...`.\r\n\r\nSince this is by design, I'll close this issue."}}