MyDeveloperDay marked an inline comment as done. MyDeveloperDay added inline comments.
================ Comment at: clang/lib/Format/EastWestConstFixer.cpp:130 + +static void swapFourTokens(const SourceManager &SourceMgr, + tooling::Replacements &Fixes, ---------------- curdeius wrote: > These functions seem a bit ugly... and very specific. And they both look like > rotate left/right. Couldn't it be a single function taking a > range/span/collection of FormatTokens? This is something I'd also started to feel the same, now I'm starting to handle longer sets of qualifier, I can replace all these swap functions for one single rotate. ``` lang=c++ static void rotateTokens(const SourceManager &SourceMgr, tooling::Replacements &Fixes, const FormatToken *First, const FormatToken *Last, bool Left) { auto *End = Last; auto *Begin = First; if (!Left) { End = Last->Next; Begin = First->Next; } std::string NewText; // If we are rotating to the left we move the Last token to the front. if (Left) { NewText += Last->TokenText; NewText += " "; } // Then move through the other tokens. auto *Tok = Begin; while (Tok != End) { if (!NewText.empty()) NewText += " "; NewText += Tok->TokenText; Tok = Tok->Next; } // If we are rotating to the right we move the first token to the back. if (!Left) { NewText += " "; NewText += First->TokenText; } auto Range = CharSourceRange::getCharRange(First->getStartOfNonWhitespace(), Last->Tok.getEndLoc()); auto Err = Fixes.add(tooling::Replacement(SourceMgr, Range, NewText)); if (Err) { llvm::errs() << "Error while rearranging const : " << llvm::toString(std::move(Err)) << "\n"; } } ``` CHANGES SINCE LAST ACTION https://reviews.llvm.org/D69764/new/ https://reviews.llvm.org/D69764 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits