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.

Reply via email to