[PATCH] D127614: [clang-format] Handle more cases for RemoveBracesLLVM
Owen Pan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 13 00:23:04 PDT 2022
owenpan created this revision.
owenpan added reviewers: curdeius, MyDeveloperDay, HazardyKnusperkeks.
owenpan added a project: clang-format.
Herald added a project: All.
owenpan requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Call mightFitOneOneline() on the line before the closing brace only if it is at the level of the block.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D127614
Files:
clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -25784,6 +25784,25 @@
"}",
Style);
+ verifyFormat("if (a)\n"
+ " b;\n"
+ "else if (c) {\n"
+ " d;\n"
+ " e;\n"
+ "} else\n"
+ " f = g(foo, bar,\n"
+ " baz);",
+ "if (a)\n"
+ " b;\n"
+ "else {\n"
+ " if (c) {\n"
+ " d;\n"
+ " e;\n"
+ " } else\n"
+ " f = g(foo, bar, baz);\n"
+ "}",
+ Style);
+
Style.ColumnLimit = 0;
verifyFormat("if (a)\n"
" b234567890223456789032345678904234567890 = "
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -844,7 +844,7 @@
size_t PPStartHash = computePPHash();
- unsigned InitialLevel = Line->Level;
+ const unsigned InitialLevel = Line->Level;
nextToken(/*LevelDifference=*/AddLevels);
// Bail out if there are too many levels. Otherwise, the stack might overflow.
@@ -905,7 +905,8 @@
return false;
}
assert(!CurrentLines->empty());
- if (!mightFitOnOneLine(CurrentLines->back()))
+ auto &LastLine = CurrentLines->back();
+ if (LastLine.Level == InitialLevel + 1 && !mightFitOnOneLine(LastLine))
return false;
if (Tok->is(TT_ElseLBrace))
return true;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D127614.436285.patch
Type: text/x-patch
Size: 1725 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220613/dbda6635/attachment.bin>
More information about the cfe-commits
mailing list