goog.module('AbstractList');
class AbstractList {}
AbstractList.Mutable = class extends AbstractList {};
AbstractList.ArrayList = class extends AbstractList.Mutable {};
exports = AbstractList;
results in the following types in the left-hand panel:
AbstractList
ArrayList
ArrayList.ArrayList
ArrayList.Mutable
ArrayList.Mutable.ArrayList
ArrayList.Mutable.Mutable
Mutable
The various aliases are marked as such, but there's still a lot of redundancy (and somewhat strange which are duplicated and which aren't - e.g. why no Mutable.Mutable?).
Furthermore, if I move ArrayList to its own file, rather than nesting it, I also end up with a very strange AbstractList.able class, which is marked as yet another alias to AbstractList.Mutable.
This minimal repro case
results in the following types in the left-hand panel:
AbstractList
ArrayList
ArrayList.ArrayList
ArrayList.Mutable
ArrayList.Mutable.ArrayList
ArrayList.Mutable.Mutable
Mutable
The various aliases are marked as such, but there's still a lot of redundancy (and somewhat strange which are duplicated and which aren't - e.g. why no
Mutable.Mutable
?).