[PATCH] D121757: [clang-format] Take out common code for parsing blocks NFC
sstwcw via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun May 1 01:58:53 PDT 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG43c146c96d8e: [clang-format] Take out common code for parsing blocks NFC (authored by sstwcw).
Changed prior to commit:
https://reviews.llvm.org/D121757?vs=420653&id=426277#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D121757/new/
https://reviews.llvm.org/D121757
Files:
clang/lib/Format/UnwrappedLineParser.cpp
clang/lib/Format/UnwrappedLineParser.h
Index: clang/lib/Format/UnwrappedLineParser.h
===================================================================
--- clang/lib/Format/UnwrappedLineParser.h
+++ clang/lib/Format/UnwrappedLineParser.h
@@ -125,6 +125,7 @@
bool handleCppAttributes();
FormatToken *parseIfThenElse(IfStmtKind *IfKind, bool KeepBraces = false);
void parseTryCatch();
+ void parseLoopBody(bool TryRemoveBraces, bool WrapRightBrace);
void parseForOrWhileLoop();
void parseDoWhile();
void parseLabel(bool LeftAlignLabel = false);
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -2713,55 +2713,49 @@
} while (!eof());
}
-void UnwrappedLineParser::parseForOrWhileLoop() {
- assert(FormatTok->isOneOf(tok::kw_for, tok::kw_while, TT_ForEachMacro) &&
- "'for', 'while' or foreach macro expected");
- nextToken();
- // JS' for await ( ...
- if (Style.isJavaScript() && FormatTok->is(Keywords.kw_await))
- nextToken();
- if (Style.isCpp() && FormatTok->is(tok::kw_co_await))
- nextToken();
- if (FormatTok->is(tok::l_paren))
- parseParens();
-
+void UnwrappedLineParser::parseLoopBody(bool TryRemoveBraces,
+ bool WrapRightBrace) {
keepAncestorBraces();
if (FormatTok->is(tok::l_brace)) {
FormatToken *LeftBrace = FormatTok;
CompoundStatementIndenter Indenter(this, Style, Line->Level);
parseBlock();
- if (Style.RemoveBracesLLVM) {
+ if (TryRemoveBraces) {
assert(!NestedTooDeep.empty());
if (!NestedTooDeep.back())
markOptionalBraces(LeftBrace);
}
- addUnwrappedLine();
+ if (WrapRightBrace)
+ addUnwrappedLine();
} else {
parseUnbracedBody();
}
- if (Style.RemoveBracesLLVM)
+ if (TryRemoveBraces)
NestedTooDeep.pop_back();
}
-void UnwrappedLineParser::parseDoWhile() {
- assert(FormatTok->is(tok::kw_do) && "'do' expected");
+void UnwrappedLineParser::parseForOrWhileLoop() {
+ assert(FormatTok->isOneOf(tok::kw_for, tok::kw_while, TT_ForEachMacro) &&
+ "'for', 'while' or foreach macro expected");
nextToken();
+ // JS' for await ( ...
+ if (Style.isJavaScript() && FormatTok->is(Keywords.kw_await))
+ nextToken();
+ if (Style.isCpp() && FormatTok->is(tok::kw_co_await))
+ nextToken();
+ if (FormatTok->is(tok::l_paren))
+ parseParens();
- keepAncestorBraces();
+ parseLoopBody(Style.RemoveBracesLLVM, true);
+}
- if (FormatTok->is(tok::l_brace)) {
- CompoundStatementIndenter Indenter(this, Style, Line->Level);
- parseBlock();
- if (Style.BraceWrapping.BeforeWhile)
- addUnwrappedLine();
- } else {
- parseUnbracedBody();
- }
+void UnwrappedLineParser::parseDoWhile() {
+ assert(FormatTok->is(tok::kw_do) && "'do' expected");
+ nextToken();
- if (Style.RemoveBracesLLVM)
- NestedTooDeep.pop_back();
+ parseLoopBody(false, Style.BraceWrapping.BeforeWhile);
// FIXME: Add error handling.
if (!FormatTok->is(tok::kw_while)) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D121757.426277.patch
Type: text/x-patch
Size: 3106 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220501/9485328c/attachment.bin>
More information about the cfe-commits
mailing list