We make assumption that:
getDeclForComment(getDeclForComment(X)) == getDeclForComment(X)
but this is not true if you have a template
instantionation of a template instantiation, which is the case when, for
example, you have a <=> operator in a templated class.
This fix makes getDeclForComment() call itself recursively to ensure
this property is always true.
can we also turn these ifs into else ifs (similarly for ifs at the top level) just to make sure we don't change behaviour (i suppose it should be fine, as the TIP will always be null in the case of undeclared specializations, but better safe than sorry).