This fixes a regression from D69573 which broke the following example:
$ echo 'operator C<T>*();' | bin/clang-format --style=Chromium operator C<T> *();
(There should be no space between before the asterisk.)
It seems the problem is in TokenAnnotator::spaceRequiredBetween(), which only looked at the token to the left of the * to see if it was a type or not. That code only handled simple types or identifiers, not templates or qualified types. This patch addresses that.
Please take a look. I'm not familiar with the code here, so comments are welcome.
Consider using Previous->getPreviousNonComment() here and below to jump over comments.