There is probably another relationship type missing in our model: overriding.
It may be interesting for a user to be able to jump from overriding to overridden method, and vice versa. Also to answer questions like which classes override method Foo of some base class.
We can (theoretically) accomplish this by comparing method signatures, but the compiler already seems to present us with methods allOverriddenSymbols and isOverridingSymbol for symbols. Exploring the source code and reliability of these methods outputs, this can be a way to get this information directly from the compiler rather than (superfluously) inferring it through more algorithm.
There is probably another relationship type missing in our model: overriding. It may be interesting for a user to be able to jump from overriding to overridden method, and vice versa. Also to answer questions like which classes override method
Foo
of some base class.We can (theoretically) accomplish this by comparing method signatures, but the compiler already seems to present us with methods
allOverriddenSymbols
andisOverridingSymbol
for symbols. Exploring the source code and reliability of these methods outputs, this can be a way to get this information directly from the compiler rather than (superfluously) inferring it through more algorithm.