[PATCH] D27621: [clang-tidy] check to find declarations declaring more than one name
Firat Kasmis via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Dec 12 05:45:40 PST 2016
firolino added a comment.
In https://reviews.llvm.org/D27621#619649, @malcolm.parsons wrote:
> The fixit construction looks overly complicated.
> All you need to do is change a `,` to a `;` and insert a copy of the type:
> << FixItHint::CreateReplacement(CommaRange, ";")
> << FixItHint::CreateInsertionFromRange(VarLocation, TypeRange)
> and insert some whitespace where needed.
I could do CommaRange = findToken(tok:comma) an do a in-place replacment and thus, get rid of the workaround part as well. But for the TypeRange, I didn't find a proper way to get only the type part. For example, getTypeSourceInfo()->getTypeLoc().getSourceRange() for
const int a(1), b(2);
int const c(3), d(4);
I am not able to get the qualifier as well. I even saw something in the source like "we do not provide SourceRange for Qualifiers...". I would like to get rid of getUserWrittenType, but didn't find a way. It gets also dirty for MemberFunctionPointers:
int S::*p = &S::a, S::* const q = &S::a;
const int S::*r = &S::b, S::*t;
int const CS :: * pp = &CS::a, CS::* const qq = &CS::a;
TypeRange will be
int const CS
More information about the cfe-commits