Very cool. -- John
On Jun 6, 2014, at 2:22 PM, Tony Fong <[email protected]> wrote: > Hello, > > First of all, let me say it's been a real pleasure working in the Julia > environment. > > I have been coming from a very different platform, and I noticed myself > making mistakes of a certain pattern. So as a little side project, I wrote > this little tool called Lint.jl that can check for some of them. > > It is at https://github.com/tonyhffong/Lint.jl.git > > I'm very new to Julia/git environment so it's a bit unpolished. But it is > handy pointing out certain mechanical issues quickly. > > What it can find out now: > simple deadcode detection (e.g if constant-true/constant-false) > simple premature-return deadcode detection > &, | being used in a Bool context. Suggest && and || > Declared but unused variable > Using a undefined variable (not working well in macros) > Exporting non-existing symbols (not fully done yet, again due to macros) > Exporting the same symbol more than once. > Name overlap between a variable and a lambda argument > Assignment in an if-predicate, as a potential confusion with “==” > Using globals in function without declaring them (This one isn't an error, > but I personally prefer explicit declaration of globals dependency inside > functions for readability.) > length() being used as Bool. It'd suggest using isempty() > > I'd love to hear comments and feedback. Thank you for your consideration. > > Tony > > p.s. I have pointed this to base/sysimg.j. The result is illuminating (for me > at least). The obviously substantial macro-related noise is a great way for > me to learn what wizardry it been used for.
