rescript-association / reanalyze

Experimental analyses for ReScript and OCaml: globally dead values/types, exception analysis, and termination analysis.
MIT License
277 stars 20 forks source link

Module incorrectly marked dead when contains non-dead type and submodule definitions #157

Open sim642 opened 2 years ago

sim642 commented 2 years ago

Running reanalyze https://github.com/rescript-association/reanalyze/commit/389dd682223201b42c33e5c444e5c79e0805adad on Goblint https://github.com/goblint/analyzer/commit/a544002114324a207df72f9e79eb656c3ebe7b5b revealed the following.

In the terminal output there's a dead module warning:

  Warning Dead Module
  File "./gobview/src/state/gvMessages.ml", line 1, characters 0-0
  +gvMessages is a dead module as all its items are dead.

  Warning Dead Value
  File "./gobview/src/state/gvMessages.ml", lines 22-28, characters 0-18
  +filter_by_line is never used
  <-- line 22
    List.filter pred [@@dead "+filter_by_line"]

Although the only value filter_by_line is indeed dead, it also contains a type t and module Message which are not. Therefore the GvMessages module should not be considered dead overall.

cristianoc commented 2 years ago

Not sure if include is treated correctly, for the inner module.