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.
