samarion/scala-abide — pull request #1 by dragos (2014-07-02 12:19:14+00:00)
Title: First attempt at finding unused members.

This shows the difficulties one has to face when dealing with Scala symbols, in
particular the fact that one logical entity is represented by multiple symbols. For
example, a class parameter has a symbol for:

* a constructor parameter
* a private field to hold that value (might be removed later, but after typer we always have it)
* maybe a getter, if the parameter is public

A *use* should be marked for any of them. Visibility should be checked on the getter (if there is one).

The same happens for vals/vars and their getters. Def-use information is something many rules will need (unused imports, unused members, single-assignment vars, etc) so it’s worthy of a simpler API.