This revision was automatically updated to reflect the committed changes. owenpan marked an inline comment as done. Closed by commit rGc95afac89e00: [clang-format][NFC] Clean up tryMergeLessLess() (authored by owenpan).
Changed prior to commit: https://reviews.llvm.org/D117759?vs=401579&id=401788#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D117759/new/ https://reviews.llvm.org/D117759 Files: clang/lib/Format/FormatTokenLexer.cpp Index: clang/lib/Format/FormatTokenLexer.cpp =================================================================== --- clang/lib/Format/FormatTokenLexer.cpp +++ clang/lib/Format/FormatTokenLexer.cpp @@ -430,25 +430,22 @@ return false; auto First = Tokens.end() - 3; - bool FourthTokenIsLess = false; - - if (Tokens.size() > 3) { - auto Fourth = (Tokens.end() - 4)[0]; - FourthTokenIsLess = Fourth->is(tok::less); - - // Do not remove a whitespace between the two "<" e.g. "operator< <>". - if (First[2]->is(tok::greater) && Fourth->is(tok::kw_operator)) - return false; - } - - if (First[2]->is(tok::less) || First[1]->isNot(tok::less) || - First[0]->isNot(tok::less) || FourthTokenIsLess) + if (First[0]->isNot(tok::less) || First[1]->isNot(tok::less)) return false; // Only merge if there currently is no whitespace between the two "<". if (First[1]->hasWhitespaceBefore()) return false; + auto X = Tokens.size() > 3 ? First[-1] : nullptr; + auto Y = First[2]; + if ((X && X->is(tok::less)) || Y->is(tok::less)) + return false; + + // Do not remove a whitespace between the two "<" e.g. "operator< <>". + if (X && X->is(tok::kw_operator) && Y->is(tok::greater)) + return false; + First[0]->Tok.setKind(tok::lessless); First[0]->TokenText = "<<"; First[0]->ColumnWidth += 1;
Index: clang/lib/Format/FormatTokenLexer.cpp =================================================================== --- clang/lib/Format/FormatTokenLexer.cpp +++ clang/lib/Format/FormatTokenLexer.cpp @@ -430,25 +430,22 @@ return false; auto First = Tokens.end() - 3; - bool FourthTokenIsLess = false; - - if (Tokens.size() > 3) { - auto Fourth = (Tokens.end() - 4)[0]; - FourthTokenIsLess = Fourth->is(tok::less); - - // Do not remove a whitespace between the two "<" e.g. "operator< <>". - if (First[2]->is(tok::greater) && Fourth->is(tok::kw_operator)) - return false; - } - - if (First[2]->is(tok::less) || First[1]->isNot(tok::less) || - First[0]->isNot(tok::less) || FourthTokenIsLess) + if (First[0]->isNot(tok::less) || First[1]->isNot(tok::less)) return false; // Only merge if there currently is no whitespace between the two "<". if (First[1]->hasWhitespaceBefore()) return false; + auto X = Tokens.size() > 3 ? First[-1] : nullptr; + auto Y = First[2]; + if ((X && X->is(tok::less)) || Y->is(tok::less)) + return false; + + // Do not remove a whitespace between the two "<" e.g. "operator< <>". + if (X && X->is(tok::kw_operator) && Y->is(tok::greater)) + return false; + First[0]->Tok.setKind(tok::lessless); First[0]->TokenText = "<<"; First[0]->ColumnWidth += 1;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits