owenpan created this revision.
owenpan added reviewers: curdeius, MyDeveloperDay, HazardyKnusperkeks.
owenpan added a project: clang-format.
owenpan requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Revert the handling of a single-statement block that gets wrapped.
See https://github.com/llvm/llvm-project/issues/53543.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D118873
Files:
clang/lib/Format/UnwrappedLineParser.cpp
clang/lib/Format/UnwrappedLineParser.h
clang/unittests/Format/FormatTest.cpp
Index: clang/unittests/Format/FormatTest.cpp
===================================================================
--- clang/unittests/Format/FormatTest.cpp
+++ clang/unittests/Format/FormatTest.cpp
@@ -23965,6 +23965,19 @@
"};",
Style);
+ // FIXME: See https://github.com/llvm/llvm-project/issues/53543.
+#if 0
+ Style.ColumnLimit = 65;
+
+ verifyFormat("if (condition) {\n"
+ " ff(Indices,\n"
+ " [&](unsigned LHSI, unsigned RHSI) { return true; });\n"
+ "} else {\n"
+ " ff(Indices,\n"
+ " [&](unsigned LHSI, unsigned RHSI) { return true; });\n"
+ "}",
+ Style);
+
Style.ColumnLimit = 20;
verifyFormat("if (a) {\n"
@@ -23981,6 +23994,9 @@
" b = c >= 0 ? d : e;\n"
"}",
Style);
+#endif
+
+ Style.ColumnLimit = 20;
verifyFormat("if (a)\n"
" b = c > 0 ? d : e;",
Index: clang/lib/Format/UnwrappedLineParser.h
===================================================================
--- clang/lib/Format/UnwrappedLineParser.h
+++ clang/lib/Format/UnwrappedLineParser.h
@@ -92,7 +92,6 @@
void reset();
void parseFile();
bool precededByCommentOrPPDirective() const;
- bool mightFitOnOneLine() const;
bool parseLevel(bool HasOpeningBrace, IfStmtKind *IfKind = nullptr);
IfStmtKind parseBlock(bool MustBeDeclaration = false, unsigned AddLevels = 1u,
bool MunchSemi = true,
Index: clang/lib/Format/UnwrappedLineParser.cpp
===================================================================
--- clang/lib/Format/UnwrappedLineParser.cpp
+++ clang/lib/Format/UnwrappedLineParser.cpp
@@ -14,7 +14,6 @@
#include "UnwrappedLineParser.h"
#include "FormatToken.h"
-#include "TokenAnnotator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
@@ -439,34 +438,8 @@
(Previous->IsMultiline || Previous->NewlinesBefore > 0);
}
-bool UnwrappedLineParser::mightFitOnOneLine() const {
- const auto ColumnLimit = Style.ColumnLimit;
- if (ColumnLimit == 0)
- return true;
-
- if (Lines.empty())
- return true;
-
- const auto &PreviousLine = Lines.back();
- const auto &Tokens = PreviousLine.Tokens;
- assert(!Tokens.empty());
- const auto *LastToken = Tokens.back().Tok;
- assert(LastToken);
- if (!LastToken->isOneOf(tok::semi, tok::comment))
- return true;
-
- AnnotatedLine Line(PreviousLine);
- assert(Line.Last == LastToken);
-
- TokenAnnotator Annotator(Style, Keywords);
- Annotator.annotate(Line);
- Annotator.calculateFormattingInformation(Line);
-
- return Line.Level * Style.IndentWidth + LastToken->TotalLength <= ColumnLimit;
-}
-
// Returns true if a simple block, or false otherwise. (A simple block has a
-// single statement that fits on a single line.)
+// single statement.)
bool UnwrappedLineParser::parseLevel(bool HasOpeningBrace, IfStmtKind *IfKind) {
const bool IsPrecededByCommentOrPPDirective =
!Style.RemoveBracesLLVM || precededByCommentOrPPDirective();
@@ -505,9 +478,7 @@
return false;
}
const FormatToken *Next = Tokens->peekNextToken();
- if (Next->is(tok::comment) && Next->NewlinesBefore == 0)
- return false;
- return mightFitOnOneLine();
+ return Next->isNot(tok::comment) || Next->NewlinesBefore > 0;
}
nextToken();
addUnwrappedLine();
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits