r199817 - clang-format: Fix incorrect lambda recognition.
Daniel Jasper
djasper at google.com
Wed Jan 22 09:01:48 PST 2014
Author: djasper
Date: Wed Jan 22 11:01:47 2014
New Revision: 199817
URL: http://llvm.org/viewvc/llvm-project?rev=199817&view=rev
Log:
clang-format: Fix incorrect lambda recognition.
Before:
std::unique_ptr<int[]> foo() {}
After:
std::unique_ptr<int []> foo() {}
Also, the formatting could go severely wrong after such a function
before.
Modified:
cfe/trunk/lib/Format/UnwrappedLineParser.cpp
cfe/trunk/unittests/Format/FormatTest.cpp
Modified: cfe/trunk/lib/Format/UnwrappedLineParser.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/UnwrappedLineParser.cpp?rev=199817&r1=199816&r2=199817&view=diff
==============================================================================
--- cfe/trunk/lib/Format/UnwrappedLineParser.cpp (original)
+++ cfe/trunk/lib/Format/UnwrappedLineParser.cpp Wed Jan 22 11:01:47 2014
@@ -753,7 +753,8 @@ bool UnwrappedLineParser::tryToParseLamb
// FIXME: This is a dirty way to access the previous token. Find a better
// solution.
if (!Line->Tokens.empty() &&
- Line->Tokens.back().Tok->isOneOf(tok::identifier, tok::kw_operator)) {
+ (Line->Tokens.back().Tok->isOneOf(tok::identifier, tok::kw_operator) ||
+ Line->Tokens.back().Tok->isSimpleTypeSpecifier())) {
nextToken();
return false;
}
Modified: cfe/trunk/unittests/Format/FormatTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=199817&r1=199816&r2=199817&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTest.cpp Wed Jan 22 11:01:47 2014
@@ -7889,6 +7889,7 @@ TEST_F(FormatTest, FormatsLambdas) {
verifyFormat("constexpr char hello[]{ \"hello\" };");
verifyFormat("double &operator[](int i) { return 0; }\n"
"int i;");
+ verifyFormat("std::unique_ptr<int[]> foo() {}");
}
TEST_F(FormatTest, FormatsBlocks) {
More information about the cfe-commits
mailing list