Reanalyze Versions Save

Experimental analyses for ReScript and OCaml: globally dead values/types, exception analysis, and termination analysis.

v2.23.0

1 year ago
  • Add command line option -set-exit-code to return an exit code (1) when at least one issue is reported.

v2.22.0

2 years ago
  • Add -json option to emit descriptions of issues, and actions to resolve them. For editor integration.
  • Work around issue with location of variant cases in type declarations.

v2.21.1

2 years ago
  • Run -config by default
  • Run dce when "reanalyze" is not present in bsconfig.json.

v2.21.0

2 years ago
  • Add support for [@warning "-unused-value-declaration"].
  • Don't report on dead values inside a function annotated @dead.
  • Fix issue with punned record expressions in OCaml projects.
  • Add command-line -config to read configuration settings under "reanalyze" in bsconfig.json. Example:
{
  "reanalyze": {
    "analysis": ["dce", "exception"],
    "suppress": ["src/ToSuppress.res"],
    "unsuppress": ["this", "that"]
  }
}
  • Allow lists and arrays as payloads e.g. for @raises([A,B]).
  • Improve printing of exception annotations in error messages.
  • Fix issue where the current file would be mistakenly reported dead and with empty name, when it contains an inner module which is dead and a toplevel exception.

v2.19.0

2 years ago
  • Don't report redundant optional arguments on functions annotated @live.

v2.18.0

2 years ago
  • Don't report unused optional arguments for functions annotated @live or @genType.
  • Add support for @live or dead at toplevel in a type declaration. Equivalent to annotating all the record fields / variant cases.
  • Turn off dead code reporting on externals by default. Add option -externals to turn back on.

v2.17.0

2 years ago
  • Give explicit error message for ast cases not implemented.

v2.16.0

3 years ago
  • Limited support for project with dune namespaces: when Mylib.Foo is not found try Foo.

v2.15.0

3 years ago
  • Exception analysis: also report on exceptions in toplevel expressions, not just variable bindings.
  • Exception analysis: add support for Belt modules.
  • Termination analysis: add support for try blocks.
  • Termination analysis: add support for array creation.
  • Termination analysis: add support for polymorphic variant creation.

v2.14.0

3 years ago
  • Fix issue where type dependencies could get lost if the last file processed is an interface file.
  • Exception analysis: Bytes.sub_string throws.