Ran into an issue where function declarations inside function scopes or uses
of sizeof inside a function would treat the && in 'sizeof(Type &&)' as a binary
operator.
Attempt to fix this by assuming reference when followed by ',' or ')'. Also adds
tests for these.
Also hit an edge case in another test that treated "and" the same as "&&"
since it parses as C++. Changed the "and" to "also" so it is no longer a
keyword.
GitHub issue at: https://github.com/llvm/llvm-project/issues/58923
nowadays we add a TokenAnnotator test (they are very easy to write), this lets us ensure its getting annotated correctly. (which is really the bug here),
but your tests below are great too!.