Re: How to retrieve entire argument name with operators
Typically, when you get a SourceLocation from a AST object, it points at the start of token. Since you are using the same SourceLocation for the start and end, the replacement only removes the * token. Also, the function getExprLoc() returns the best location for a diagnostic, and may not be useful elsewhere.
To get the start and end SourceLocation's, use the functions getLocStart() and getLocEnd(). These are from the class Stmt, which is the parent of Expr.
Hope that helps.
On Sun, Apr 8, 2018 at 4:21 AM David Lai via cfe-dev <[hidden email]> wrote:
I am writing a replacement to move arguments from one function to another.
foo(arg1) -> foo().bar(arg1)
foo(*arg2) -> foo().bar(*arg2)
foo(…) -> foo().bar(…)
where arg1, arg2, … are resolved to the same type.
I am able to handle the first case doing something like this: