[ANN] Zanuda -- OCaml linter experiment

I’m using this linter for teaching for two years, and I’m very happy that I implemented it. Student’s code is much less annoying to read :slight_smile:

Release 1.1.0

  • #22: Add ‘reviewer’ tool to report lint’s a Github review.
  • #13: Discourage matching a tuple using ‘match’ expression with single branch
    match x with (a,b) -> ...
    
  • #18: Warn about unneeded mutually recursive types
  • #23: Implement a trial version of the Fix module for auto-correction of lints.
    It produces a diff that could be applied later. Dune support is lacking
  • Add command line switch ‘-skip-level-allow ’ to enable/disable lints
    with level=Allow. False has higher priority than per-lint command line switch
    (for example, -no-string_concat)
  • #28: Warn about too many nested if expressions.
  • #32: Warn about constructor names that hide default constructor names
  • #35: Detect manual implementations of List.map/fold functions
  • #50: Propose eta reduction when available
  • #51: Warn about pattern matching on boolean values
  • #53: Warn about "%s" in formatted strings
  • #54: Detection of unused public declarations in .mli file.
  • #56: Simplify lint about missing license. We look for required doc-comments anywhere in the file, not only in the beginning.
  • #60: Skip some checks for some source files (configured via ‘.zanuda’ config file).
  • #15: Split ‘string_concat’ lint to check separately patterns ‘a^b^c’ (level=Allow) and ‘List.fold_left (^)’ (level=Warn).
7 Likes