Comment #1 on pull request 1084 by kimgr: Fix aliased template parameter reporting
https://github.com/include-what-you-use/include-what-you-use/pull/1084
Looks good overall.
There's an interesting TODO comment just below your change, that hints at additional complexity. I wonder if that's severely outdated, and your patch is enough, or if there are nested template dragons hiding here (e.g. can the `SubstTemplateTypeParmType` itself be a template, etc, etc).
It's hard to see which changes in the testcase comes from the new behavior, and which are just noise from the `Class` split into `Class1` and `Class2`. I wonder if it's possible to refactor the testcase first so it's more obvious what the new behavior is?
I'd probably try something like:
* Refactor commit:
* Split Pair out into its own header
* Keep `Class` in its own header
* Add a `Class2` in same header, and use it with `Pair`
* Then behavioral change commit:
* Make the behavior change
* Add `Class3` with the other `Class` types
* Use it as an alias, and add the new tests
I think that way the diff will be smaller for the behavioral change, which is to support `using` aliases in templates, right?