Skip to content

Remove dead code + GraphViz support

This MR removes a lot of code, removed unused csv dependency and enable new lints. The most interesting commits are 46b9b0ef and a2574b01, where manual review is recommended @lgaeher.

I discovered that the compiler does not detect unused code when an enum/function/struct is publicly available within a submodule/subcrate (e.g., spec_parsers within translation or radium "within" translation (workspace subcrate)). The method that has worked so far is to restrict all pub methods to pub(crate) and go back to pub if needed. Therefore, unused items within the crate are flagged, exposing unused code.

There are some tools that try to reveal unused functions, like warnalyzer, but fail to detect correctly.

However, newly marked pub(crate) items may even be private. I think the best procedure is to :

  • convert every pub to pub(crate)
  • fix errors by reverting to pub
  • remove unused code, if any
  • convert every pub(crate) to private
  • fix errors by reverting to pub(crate)
Edited by Vincent Lafeychine

Merge request reports

Loading