Re: Redefined 'count' produces no warning

2014-07-31 Thread Colin Fleming
Right, actually I think a better heuristic would be: "warn on any function invocation where the function being invoked is a local binding with a name shadowing clojure.core". Whenever I use these names in local bindings, they're practically never functions so invoking them is pretty much always a b

Re: Redefined 'count' produces no warning

2014-07-30 Thread Sean Corfield
On Jul 30, 2014, at 1:37 PM, Andy Fingerhut wrote: > My first thought at a lint implementation was simply "warn if a let-bound > name matches any Var name in clojure.core", although granted that could > produce more false positives than you want. Yeah, I'd just disable that globally for our cod

Re: Redefined 'count' produces no warning

2014-07-30 Thread Andy Fingerhut
My first thought at a lint implementation was simply "warn if a let-bound name matches any Var name in clojure.core", although granted that could produce more false positives than you want. The linter could be enabled by default, and experienced folks could disable it completely. Alternately, whe

Re: Redefined 'count' produces no warning

2014-07-30 Thread Colin Fleming
Yeah, I do this all the time as well (in Cursive, I frequently have things with names like 'symbol' and 'list' for example), but it does bite me when I later refactor or copy some code around. I'm not sure what criteria I'd want used for this warning - attempting to invoke a local binding that had

Re: Redefined 'count' produces no warning

2014-07-30 Thread Sean Corfield
FWIW we have several places where the obvious local name shadows a core function - so the existing behavior is both desirable (IMO) and in existing production usage. I would not want to see that changed :) Eastwood seems like the correct place for this (Eastwood has continued to detect bugs in

Re: Redefined 'count' produces no warning

2014-07-30 Thread Andy Fingerhut
This would be an appropriate kind of check for a lint tool like Eastwood to make, and warn about. It currently does not do so, but I've created an issue to remind me of the potential enhancement. [1] It is up to the Clojure core team to decide whether they would like to make such a change to the