In #686, we added checks for implied uses of type aliases in topologies in an ad-hoc way. In hindsight this approach is not correct, because it bypasses the UseAnalyzer. In particular, the dependency analyzer, which gets its use information from the UseAnalyzer, is not told about these implied uses.
Instead of doing this, I think we should do the following:
- Represent the implied uses as AST nodes
- When visiting a topology, visit those nodes in the ordinary way for uses