[clang-tools-extra] [clang-tidy] Add support for in-class initializers in readability-redundant-member-init (PR #77206)
Piotr Zegar via cfe-commits
cfe-commits at lists.llvm.org
Sun Jan 14 04:02:50 PST 2024
================
@@ -18,52 +19,80 @@ using namespace clang::tidy::matchers;
namespace clang::tidy::readability {
+static SourceRange
+getFullInitRangeInclWhitespaces(SourceRange Range, const SourceManager &SM,
+ const LangOptions &LangOpts) {
+ const Token PrevToken =
+ utils::lexer::getPreviousToken(Range.getBegin(), SM, LangOpts, false);
+ if (PrevToken.is(tok::unknown))
+ return Range;
+
+ if (PrevToken.isNot(tok::equal))
+ return {PrevToken.getEndLoc(), Range.getEnd()};
----------------
PiotrZSL wrote:
No it would look ugly:
```
if (PrevToken.is(tok::unknown) || PrevToken.isNot(tok::equal))
return {(PrevToken.is(tok::unknown) ? Range.getBegin() : PrevToken.getEndLoc()), Range.getEnd()};
```
It would require duplicating an condition. and those 2 conditions are not +- same.
First one is: we get invalid token, then let just return what we can (error case), second we found something else than =, so lets get that range.
https://github.com/llvm/llvm-project/pull/77206
More information about the cfe-commits
mailing list