Coroutine co_yield/co_await/co_return are implemented by a serious
of synthesized CXXMemberExpr which have no lexical right-side parenthesis.
This fix uses the end loc of inner expr as the hypothetical RParenLoc of CXXMemberExpr.
For tools this might be an issue since the RParen token doesn't exist (but has a valid location).
For future improvement, we might:
- mark those inner (generated) exprs as implict (tools have chances to skip these nodes) (by @aaron.ballman)
- borrow the idea from InitListExpr, there are two forms, one is for semantic, the other one is for syntactic, having these two split can make everything easier (by @hokein)
Why getBeginLoc() and not getEndLoc()?